我需要对文本文件进行修改并保持原始文件不变。现在我正在使用读写器并读取文件,然后将其写回来没有修改。
不幸的是,文本文件很大,大约2GB,并且需要大约一个小时才能完成(因为文本文件在网络驱动器上)。
使用该文件。移动比读/写更快?例如,将文本文件移动到本地计算机,进行修改,然后将其移回?
或者,制作原件的副本并通过这种方式进行修改,而不是必须读/写?
我目前的代码:
try
{
using (StreamReader reader = new StreamReader(filePath))
{
using (StreamWriter writer = new StreamWriter(output))
{
//go through the whole txt file
while (!reader.EndOfStream)
{
//gets the line
line = reader.ReadLine();
if (!modification case goes here))
{
writer.Write(line);
}
}
}
}
}
}
任何帮助将不胜感激!
答案 0 :(得分:3)
使用连接的网络驱动器,在本地复制文件,执行任何操作并将其复制回来总是更快。这样您就可以使用缓存和提取(预缓存),这是在磁盘驱动器的硬件级别实现的。网络吞吐量始终限于Network_T_Rate / 10的平均公式,以兆字节/秒表示。因此,例如,如果您拥有100T,与大多数公司网络一样,无论是读取还是写入,您都将获得~10Mb / s,因为另一端的磁盘比网络更快。换句话说,你的瓶颈就是网络。