您可以选择使用BufferedWriter写入哪一行吗?

我有一个程序,可以对数据进行排序并根据这些数据创建百分比值。我正在使用java.io.BufferedWriter来写文件。

我的问题是,一旦我读完数据文件并将所需的信息打印到新文件中,就无法将计算出的百分比值添加到现有行中,只能添加到文件末尾。

例如我有

12 F 56 Bovine
...
...
NewPercentages
%%
%%

我想要

12 F 56 Bovine %%
...            %%
cangmings 回答:您可以选择使用BufferedWriter写入哪一行吗?

似乎您当前正在打印一些数据行,并且想要更改已经打印的行。

使用Java的BufferedWriter无法做到这一点。事实上,大多数我熟悉的I / O库都是不可能的-似乎您误解了Java的BufferedWriter(以及扩展名,通常是输出)的工作原理。

使用BufferedWriter(以及其他大多数使用Java和其他方法编写输出的API)的基本假设是:您只发送最终的完整输出。发送输出后,这是您无法控制的。它将被发送到其最终目的地,这可能意味着将其写入输出文件,在控制台/终端窗口上打印,发送到其他计算机(无论如何)。因此,没有“取回”或“编辑”的操作,就像您发布的一封信一样,数据不会到达目的地。


要解决您的问题:如果要更改/修改要打印的数据,则需要延迟打印。您需要准备完整的输出,然后才将其打印出来。

有多种方法可以做到这一点。最简单的方法是通过创建要打印的值列表来准备存储器中的所有内容(例如,使用java.util.List)。然后,您可以随意查看输出数据,并在完成后将其打印出来。

有很多方法可以做到这一点(直接创建输出字符串,创建稍后打印的“数据持有人”对象,...)-这取决于您的问题。

希望对您有所帮助。如果仍然有问题,请将您的代码与新问题一起发布。祝你好运!

本文链接:https://www.f2er.com/3061055.html

大家都在问