gpt4 book ai didi

c# - 快速替换大文件的第一行

转载 作者:可可西里 更新时间:2023-11-01 08:24:03 24 4
gpt4 key购买 nike

我有很多大型 csv 文件(每个 1-10 GB),我正在将其导入数据库。对于每个文件,我需要替换第一行,以便将标题格式化为列名。我目前的解决方案是:

using (var reader = new StreamReader(file))
{
using (var writer = new StreamWriter(fixed))
{
var line = reader.ReadLine();
var fixedLine = parseHeaders(line);
writer.WriteLine(fixedLine);

while ((line = reader.ReadLine()) != null)
writer.WriteLine(line);
}
}

什么是只替换第 1 行而不遍历这些巨大文件的每一行的更快方法?

最佳答案

如果您可以保证 fixedLineline 的长度相同(或更短),则可以就地更新文件而不是复制它们。

如果没有,您可以通过访问 StreamReaderStreamWriter.BaseStream 并进行大块复制来提高性能(例如,使用一个 32K 字节的缓冲区)进行复制,这至少会消除检查每个字符以查看它是否是行尾字符所花费的时间,就像现在使用 reader.ReadLine().

关于c# - 快速替换大文件的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748282/

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