[英]How to append to the end of a file in java?
...
Scanner scan = new Scanner(System.in);
System.out.println("Input : ");
String t = scan.next();
FileWriter kirjutamine = new FileWriter("...");
BufferedWriter out = new BufferedWriter(writing);
out.write(t)
out.close();
...
如果我在文件中寫入一些字符串,那么它會轉到第一行。 但是如果再次運行程序,它會將新文本寫入前一個文本(到第一行)。 我想做:如果我插入一些東西,那么它會轉到下一行。 例如:
after 1 input) text1
after 2 input) text1
text2
等等...
我應該在代碼中更改什么? 謝謝!
java.io.PrintWriter pw = new PrintWriter(new FileWriter(fail, true));
這應該這樣做。 在現有的 pw 行上使用它。
編輯:正如評論中所解釋的,這導致以下事情發生:
正在創建 FileWriter,可選的 'append' 標志設置為 true。 這會導致 FileWriter 不會覆蓋文件,而是為 append 打開它並將指針移動到文件末尾。
PrintWriter 正在使用此 FileWriter(而不是使用您傳遞的文件創建自己的文件。)
(這里有很多編輯。我有幾次不確定這個問題。)
我建議您在 FileWriter 構造函數中使用append
標志。
您也可以在每次寫入之間添加換行符;)
你為什么不使用RandomAccessFile
? 在RandomAccessFile
中,可以在任意 position 執行讀/寫操作。文件指針可以通過seek()
方法移動到任何地方。 您必須在使用時指定文件打開模式。 例子:
RandomAccessFile raf = new RandomAccessFile("anyfile.txt","rw"); // r for read and rw for read and write.
並且要將文件指針指向 EOF,您必須使用 seek()。
raf.seek(raf.length());
而不是使用BufferedWriter
,使用
PrintWriter out = new PrintWriter(kirjutamine);
out.print(t);
out.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.