gpt4 book ai didi

c# - 如何计算 TextReader.ReadLine() 读取的字节数?

转载 作者:行者123 更新时间:2023-11-30 16:33:39 26 4
gpt4 key购买 nike

我正在解析一个非常大的记录文件(每行一个,每行不同长度),我想跟踪我在文件中读取的字节数,以便我可以在失败事件。

我写了以下内容:

using (TextReader myTextReader = CreateTextReader())
{
string record = myTextReader.ReadLine();
bytesRead += record.Length;
ParseRecord(record);
}

但是这不起作用,因为 ReadLine() 会去除该行中的所有 CR/LF 字符。此外,一行可能由 CR、LF 或 CRLF 字符终止,这意味着我不能只向 bytesRead 添加 1。

是否有一种简单的方法来获取实际的行长度,或者我是否根据粒度 Read() 操作编写自己的 ReadLine() 方法?

最佳答案

获取底层流的当前位置无济于事,因为 StreamReader 会缓冲从流中读取的数据。

本质上,如果不编写自己的 StreamReader,您将无法执行此操作。但你真的需要吗?

我会简单地计算阅读的行数。

当然,这意味着要定位到特定行,您需要读取 N 行而不是简单地寻找偏移量,但这有什么问题呢?您是否确定性能 Not Acceptable ?

关于c# - 如何计算 TextReader.ReadLine() 读取的字节数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2963652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com