-1

我必须更改 asp.net 中文本文件的特定行。我可以只更改/替换特定行中的文本吗?我在文本文件中使用了替换功能,但它正在替换整个文件中的文本。我只想替换我指定的一行。

等待回复。。

提前致谢..

4

1 回答 1

6

除了直接逐字节覆盖之外,文件系统通常不允许您在文件中进行编辑。如果您的文本文件对每一行使用相同数量的字节,那么您可以非常有效地替换一行文本 - 但如今这种情况相对罕见。

您更有可能需要采用以下选项之一:

  • 使用 将整个文件加载到内存中File.ReadAllLines,更改相关行,然后使用 再次将其写出File.WriteAllLines。这在内存方面效率低下,但编码非常简单。如果您的文件很小,这是一个不错的选择。
  • 打开输入文件和一个新的输出文件。从输入中一次读取一行文本,然后将其复制到输出或写入不同的行。然后关闭这两个文件,删除输入文件并重命名输出文件。这一次只需要内存中的一行文本,但它要复杂得多。

第二个选项还有另一个好处 - 您可以随机播放文件(使用大量重命名步骤),因此除非已知输出文件完整且位于正确的位置,否则您永远不会丢失输入文件. 但这更复杂。

于 2013-07-24T05:49:52.490 回答