gpt4 book ai didi

java - 您可以使用 BufferedWriter 选择要写入的行吗?

转载 作者:行者123 更新时间:2023-12-01 20:10:49 24 4
gpt4 key购买 nike

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

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

例如。我有

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

我要

12 F 56 Bovine %%
... %%

最佳答案

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

使用 Java 的 BufferedWriter 是不可能实现这一点的。事实上,对于我熟悉的大多数 I/O 库来说这是不可能的 - 看来您误解了 Java 的 BufferedWriter(以及一般的输出)的工作原理。

BufferedWriter(以及大多数其他用于编写输出的 API,无论是在 Java 中还是其他地方)的基本假设是:您只发送最终的、完整的输出。一旦您发送输出,这是你无法控制的。它将被发送到最终目的地,这可能意味着被写入输出文件、在控制台/终端窗口上打印、发送到不同的计算机等等。因此,不存在“收回”或“编辑” - 就像您发布的信件一样,数据已到达目的地。

<小时/>

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

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

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

希望对您有所帮助。如果您仍然遇到问题,请将您的代码以及您遇到的问题作为新问题发布。祝你好运!

关于java - 您可以使用 BufferedWriter 选择要写入的行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58966878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com