我正在尝试使用VB.NET来处理非常大的纯文本文件(2 GB)。它是一个数据库,字段分隔符为SOH
,记录分隔符为STX
。
我想分开文件的字段和记录。
我通常会读取文本文件的每一行,然后使用split函数来分隔字段。我不能使用这种方法,因为每一行都不总是有分隔符。
在找到STX
之前有没有办法读取文件(而不是一次只读一行)?
答案 0 :(得分:1)
在.NET中没有“直到字符串'foo'”,你需要打开一个FileStream
并用FileStream.Read
读取块到一个临时缓冲区中并扫描该缓冲区以获取你的令牌。 / p>
答案 1 :(得分:0)
我会查看TextFieldParser类,看看它是否适合任务:
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx
如果不是,我会尝试免费的FileHelpers库:
如果这些人都不能胜任这项工作,那么就像阿尔宾所提到的那样,你可以使用缓冲区进行良好的文件流读取。