在 C# 中,我正在读取中等大小的文件(100 KB ~ 1 MB),修改部分内容,最后写入不同的文件。所有内容均为文字。修改是作为字符串对象和字符串操作完成的。我目前的做法是:
- 使用
StreamReader
从原始文件中读取每一行。 - 为新文件的内容打开一个
StringBuilder
。 - 修改字符串对象,调用
StringBuilder
的AppendLine
(直到文件结束) - 打开一个新的
StreamWriter
,并将StringBuilder
写入写入流。
但是,我发现 StremWriter.Write
截断了 32768 字节 (2^16),但是 StringBuilder
的长度比那个大。我可以写一个简单的循环来保证整个字符串到一个文件。但是,我想知道在 C# 中执行此任务的最有效方法是什么?
总而言之,我只想修改文本文件的某些部分并写入不同的文件。但是,文本文件大小可能大于 32768 字节。
== 回答== 很抱歉让您感到困惑!只是我没有调用 flush
。 StremWriter.Write
没有短(例如 2^16)限制。
最佳答案
StreamWriter.Write
没有
截断字符串,没有限制。
在内部它使用 String.CopyTo
,另一方面使用 unsafe code(使用 fixed
)来复制字符,所以它是 < strong>最有效。
关于c# - 将大字符串写入文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027349/