将大字符串写入文件的最佳方法

Nul*_*ptr 12 c# string file stream

在C#中,我正在读取中等大小的文件(100 KB~1 MB),修改内容的某些部分,最后写入不同的文件.所有内容都是文字.修改以字符串对象和字符串操作完成.我目前的做法是:

  1. 使用,从原始文件中读取每一行StreamReader.
  2. 打开a StringBuilder以获取新文件的内容.
  3. 修改字符串对象和呼叫AppendLineStringBuilder(直到文件的结尾)
  4. 打开一个新的StreamWriter,然后写入StringBuilder写入流.

但是,我发现StremWriter.Write截断32768字节(2 ^ 16),但长度StringBuilder大于那个.我可以写一个简单的循环来保证整个字符串到一个文件.但是,我想知道在执行此任务时C#中最有效的方法是什么?

总而言之,我只想修改文本文件的某些部分并写入不同的文件.但是,文本文件大小可能大于32768字节.

==答案==很抱歉让你烦恼!只是我没有打电话flush.StremWriter.Write没有短期(例如,2 ^ 16)限制.

Ali*_*tad 11

StreamWriter.Write

才不是

截断字符串并没有限制.

在内部,它使用String.CopyTo另一方面使用不安全的代码(使用fixed)来复制字符,因此它是最有效的.