你能 select 使用 BufferedWriter 写入哪一行吗?
Can you select which line to write to with a BufferedWriter?
我有一个程序可以对数据进行排序并根据这些数据创建百分比值。我正在使用 java.io.BufferedWriter 写入我的文件。
我的问题是,一旦我读入了我的数据文件并将需要的信息打印到我的新文件中,我就无法在现有行上添加我计算出的百分比值,只能添加到文件末尾。
例如。我有
12 F 56 Bovine
...
...
NewPercentages
%%
%%
我要
12 F 56 Bovine %%
... %%
您似乎正在打印一些数据行,并且您想更改已经打印的行。
使用 Java 的 BufferedWriter
是不可能的。事实上,对于我熟悉的大多数 I/O 库来说,这是不可能的——你似乎误解了 Java 的 BufferedWriter
(以及通常的输出)是如何工作的.
BufferedWriter
(以及大多数其他用于写入输出的 API,在 Java 和其他地方)的基本假设是:您只发送最终的、完整的输出。 一旦你发送了输出,它就不受你的控制了。它将被发送到它的最终目的地,这可能意味着被写入输出文件,打印在 console/terminal window 上,发送到不同的计算机,无论如何。所以没有 "taking back" 或 "editing" - 就像您 post 编辑的一封信,数据已到达目的地。
解决您的问题:如果您想change/amend您正在打印的数据,您需要延迟打印。您需要准备完整的输出,然后才打印出来。
有多种方法可以做到这一点。最简单的方法是通过创建要打印的值列表(例如使用 java.util.List
)来准备内存中的所有内容。然后您可以随心所欲地查看输出数据,并在完成后将其打印出来。
有很多方法可以做到这一点(直接创建输出字符串,创建稍后打印的 "data holder" 对象,...)- 这取决于您的问题。
希望对您有所帮助。如果您仍然遇到问题,post 您的代码以及您遇到的问题作为一个新问题。祝你好运!
我有一个程序可以对数据进行排序并根据这些数据创建百分比值。我正在使用 java.io.BufferedWriter 写入我的文件。
我的问题是,一旦我读入了我的数据文件并将需要的信息打印到我的新文件中,我就无法在现有行上添加我计算出的百分比值,只能添加到文件末尾。
例如。我有
12 F 56 Bovine
...
...
NewPercentages
%%
%%
我要
12 F 56 Bovine %%
... %%
您似乎正在打印一些数据行,并且您想更改已经打印的行。
使用 Java 的 BufferedWriter
是不可能的。事实上,对于我熟悉的大多数 I/O 库来说,这是不可能的——你似乎误解了 Java 的 BufferedWriter
(以及通常的输出)是如何工作的.
BufferedWriter
(以及大多数其他用于写入输出的 API,在 Java 和其他地方)的基本假设是:您只发送最终的、完整的输出。 一旦你发送了输出,它就不受你的控制了。它将被发送到它的最终目的地,这可能意味着被写入输出文件,打印在 console/terminal window 上,发送到不同的计算机,无论如何。所以没有 "taking back" 或 "editing" - 就像您 post 编辑的一封信,数据已到达目的地。
解决您的问题:如果您想change/amend您正在打印的数据,您需要延迟打印。您需要准备完整的输出,然后才打印出来。
有多种方法可以做到这一点。最简单的方法是通过创建要打印的值列表(例如使用 java.util.List
)来准备内存中的所有内容。然后您可以随心所欲地查看输出数据,并在完成后将其打印出来。
有很多方法可以做到这一点(直接创建输出字符串,创建稍后打印的 "data holder" 对象,...)- 这取决于您的问题。
希望对您有所帮助。如果您仍然遇到问题,post 您的代码以及您遇到的问题作为一个新问题。祝你好运!