如果我有一个像这样的文本文件:
123, joe blow, USA
其中第一个值代表:
用户 ID、姓名、国家/地区
如果我的文件有 5000 行,我可以使用 C# 以某种方式更新特定行吗?
最佳答案
虽然可以更改文件中的一行 - 只有当替换文本的长度完全相同时,您才能安全地这样做。因为这种情况很少见,最好的办法是用新结果替换文件的全部内容。
基于行的文本文件不是存储信息的好格式,正是由于这个原因,这些信息可能会发生变化。
现在,假设文件不是太大,您可以将其整个加载到字符串数组中,替换特定行的文本,然后将文件写回:
using System.IO;
var linesOfText File.ReadLines( "/myfile.txt", Text.Encoding.UTF8 ).ToArray();
linesOfText[123] = "456, sally smith, USA";
File.WriteAllLines( "/myfile.txt", linesOfText );
编辑: 为了简洁起见,我在上面提供了一个使用索引位置更新特定行的示例。在任何实际使用中,您都应该解析行并搜索要更新/替换的行,而不是依赖偏移量。
如果文件太大,我不会使用上面的代码,大约 5,000 行 50 个字符相对较小 (< 1Mb) 所以,我不会担心。但是,如果您打算一遍又一遍地执行此类操作,您可能需要重新考虑如何存储这些数据。
关于c# - 每行的文本文件代表一个用户,我可以更新特定行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837167/