0

我正在尝试创建一个程序,我可以在其中将字符串写入文本文件中某一行的末尾。

例如,这是一个只有一堆随机数的文本文件:

12 23
53 23

现在,如果我有一个程序在第一行(或任何指定的行)的末尾添加另一个两位数,请记住,如果我继续运行该程序,该行将继续扩展。

所以运行程序后,文本文件看起来像这样:

12 23 34
53 23

有什么方法可以解决这个问题?

4

2 回答 2

2

如果我理解这个问题,这是不可能的。问题是如果你延长一行,它会覆盖下一行。您似乎期望以下行向下移动以腾出空间,但这不是它的工作原理。

除非你的文件很大,否则最好的方法是将文件加载到内存中,修改内存中的数据,然后创建一个新文件来保存结果。(如果需要,您可以保存到同一个文件。)

其他算法涉及使用固定大小的块,在您的文件中有一个链接列表,但听起来您希望您的文件是普通文本,因此这些可能不起作用。

于 2015-02-04T18:26:59.420 回答
0

您永远不应该尝试在原地编辑文本文件。最常见的方法是将编辑后的文件写入临时位置,最后将其重命名为旧名称(删除原始文件后)。

另一种方法是(只要文件足够小)将所有内容加载到内存中并从头开始重写文件。但是永远不要对敏感文件这样做,因为如果您的程序(或您的计算机或电源)在中间崩溃,您的文件将最终丢失。

于 2015-02-04T18:40:37.203 回答