修改文件时,是否总是需要重写整个文件,或者是否可以找到并更改文件的一小部分而无需重写整个文件?
问问题
1385 次
3 回答
6
如果您不插入或删除数据,则无需重写文件。您将用新值替换现有字节,或附加到文件中。
如果您需要插入或删除,您只需要从那时起重写文件。唯一需要重写整个文件的情况是在开头插入字节。
打开具有读写权限的文件是可以的。这样您就可以在文件中搜索您要查找的任何内容,一旦您有了位置,您就可以寻找它(从内存中,写指针与读指针是分开的)并将数据覆盖到您心中的内容=)
于 2012-07-26T04:57:17.057 回答
4
如果你不改变数据的长度,你总是可以在文件中寻找合适的位置,并写入一组新的字节。这将替换最初存在的任何字节。
于 2012-07-26T04:57:24.800 回答
0
有两种可能的方式:
- 当您使用
StreamWriter sw = new StreamWriter
它时,它将从文件中删除数据。 仅更改,您可以将文件数据存储在
List<string>
. 这对我很有效:List<string> lines_list = new List<string>(); int file_l = 0 StreamReader sr_temp = new StreamReader(_path); string line; while ((line = sr_temp.ReadLine()) != null) { lines_list.Add(line); file_l++; } sr_temp.Close(); StreamWriter sw = new StreamWriter(_path); for (int i = 0; i < file_l; i++) { sw.WriteLine(lines_list[i]); } //here you add some data sw.Close();
于 2012-07-26T04:57:33.547 回答