...
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
依旧......
我应该在代码中更改什么? 谢谢!
答案 0 :(得分:6)
java.io.PrintWriter pw = new PrintWriter(new FileWriter(fail, true));
这应该这样做。在现有的pw线上使用它。
编辑:正如评论中所解释的那样,这会导致以下事情发生:
正在创建FileWriter,可选的'append'标志设置为true。这会导致FileWriter不会覆盖该文件,但会将其打开以追加并将指针移动到文件的末尾。
PrintWriter正在使用此FileWriter(而不是使用您传递的文件创建自己的文件。)
(这里有很多编辑。我几次不确定这个问题。)
答案 1 :(得分:3)
我建议你在FileWriter构造函数中使用append
标志。
您也可以在每次写入之间添加换行符;)
答案 2 :(得分:2)
为什么不使用RandomAccessFile
?
在RandomAccessFile
中,可以在任何位置执行读/写操作。可以通过seek()
方法将文件指针移动到任何位置。您必须在使用时指定文件打开模式。
例如:
RandomAccessFile raf = new RandomAccessFile("anyfile.txt","rw"); // r for read and rw for read and write.
并将文件指针指向EOF,你必须使用seek()。
raf.seek(raf.length());
答案 3 :(得分:1)
不使用BufferedWriter
,而是使用
PrintWriter out = new PrintWriter(kirjutamine);
out.print(t);
out.close();