如何使用 StringBuilder 写回文本文件

本文关键字:文本 文件 写回 StringBuilder 何使用 | 更新日期: 2023-09-27 18:36:16

目前我的代码没有插入其他数据,而是覆盖了测试文件中的数据。

代码片段如下:

string path = @"C:''test.txt"; // <==NEW
StreamWriter sw = new StreamWriter(new FileStream(path, Filemode.Open, FileAccess.Write)); // <==NEW
StringBuilder Editions = new StringBuilder(400);

Editions.Insert(0, "0");
Editions.Insert(1, "0");
//Editions.Remove(9, 14);
//Editions.Insert(11, "R");
//Editions.Insert(12, "M");
//Editions.Insert(13, "A");
//Editions.Insert(14, "L");
//Editions.Insert(15, "L");
//Editions.Insert(16, " ");
//Editions.Insert(17, " ");
//Editions.Insert(18, " ");
//Editions.Insert(193, "C");
//Editions.Insert(194, "L");
sw.Write(Editions.ToString()); // <== NEW
sw.Flush(); // <== NEW
sw.Close(); // <== NEW

如何使用 StringBuilder 写回文本文件

如果需要添加更多数据,则需要在Append模式下打开文件

@"C:''test.txt"; // <==NEW
StreamWriter sw = new StreamWriter(new FileStream(path, Filemode.Append, FileAccess.Write)); // <==NEW
StringBuilder Editions = new StringBuilder(400);

Editions.Insert(0, "0");
Editions.Insert(1, "0");
//Editions.Remove(9, 14);
//Editions.Insert(11, "R");
//Editions.Insert(12, "M");
//Editions.Insert(13, "A");
//Editions.Insert(14, "L");
//Editions.Insert(15, "L");
//Editions.Insert(16, " ");
//Editions.Insert(17, " ");
//Editions.Insert(18, " ");
//Editions.Insert(193, "C");
//Editions.Insert(194, "L");
sw.Write(Editions.ToString()); // <== NEW
sw.Flush(); // <== NEW
sw.Close(); // <== NEW

更多信息 - 这里

引用自 MSDN : 附加

打开文件(如果存在)并查找到文件末尾,或者 创建一个新文件。这需要FileIOPermissionAccess.Append 许可。FileMode.Append 只能与 试图在结束之前寻找一个位置 文件引发 IOException 异常,并且任何读取尝试都失败 并引发 NotSupportedException 异常。

此外 - 当您使用插入时,请注意"参数超出范围异常".!!读