我读了一个CSV文件,然后通过写出每列分隔的逗号值将其转换为TXT文件。我希望程序也能够将TXT文件转换回CSV,这样我就可以创建TXTReader
类了。我在阅读大型TXT文件时遇到问题。我首先使用String.Split
尝试了它:
string fullText = File.ReadAllText(fileName);
string[] values = fullText.Split(',');
这首先起作用,但是当带有逗号的字符串的列出现时,它开始引起问题,使程序认为它是另一个列,而它只是一个字符串。我继续寻找解决方案并找到了https://stackoverflow.com/a/3147901/1870760。这适用于小文件,但我的31 MB TXT文件非常慢。然后我通过遍历fullText
中的所有字符并检查"\""
来尝试我自己的hacky方式,因为所有字符串都在TXT中包含了引号,但这也需要很长时间(~10)分钟)。
我也无法使用https://stackoverflow.com/a/3148691/1870760,因为我的字符串列值有时会包含\n
,这会让读者认为它是一个新行,但它不是。
那么,我是否必须接受它并且需要一段时间才能读取31 MB的TXT文件并将值拆分成列或者是否有更有效的方法来执行此操作?
答案 0 :(得分:0)
据说,与低内存使用率的正则表达式相比,csv读取/拆分速度快15倍。如果您想稍后显示数据,则支持数据绑定。资料来源。
您可以自定义许多参数(包括换行选项),因此我假设它足够聪明以处理您的\n
值,它会在参数值中处理逗号。