写不同的线路到文件
问题描述:
我有这种方法,每一个,它被称为一次写入一个文件:写不同的线路到文件
public void writeToFile(String ins) {
FileWriter fw = new FileWriter(f);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(ins);
bw.newLine();
bw.close();
fw.close();
}
但只写在文件的第一行。
所以,如果我把它称为与“世界”,“你好”,然后再一次,该文件将包含“世界”,但是我正在寻找的结果是:
你好
世界
我之前和写入字符串后使用BufferedWriter.newLine()
尝试,但结果是一样的吗?
答
你必须使用FileWriter(String fileName, boolean append)
FileWriter fw = new FileWriter(f, true);
答
读取的FileWriter的documentation:
FileWriter的(文件文件,布尔附加) 构造给出布尔值,指示是否要写入的数据附加文件名的FileWriter对象。
,你看,你需要追加值设置为true:
FileWriter fw = new FileWriter(f, true);
答
的一点是:你的代码做的是什么应该这样做 - 它使用FileWriter,默认情况下创建一个新的空文件;它写入一个字符串;并关闭FileWriter。
如果你想写多行;你要么必须
- 以附加模式使用FileWriter做后写入时(通过使用第二,对于FileWriter的构造与
true
布尔参数) - 改变你的方法取一个字符串列表,写所有的人立刻
+0
我喜欢这样的说法:“你的代码做它应该做的事情”这通常是正确的,但开发人员不会编写它应该完成的任务;) – AxelH
答
可以使用转义字符:
\b Insert a backspace in the text at this point.
\n Insert a newline in the text at this point.
\r Insert a carriage return in the text at this point.
我建议你使用的资源尽量让Java来关闭该文件时,它会需要
public void writeToFile(String ins) {
String fileName= "file.txt";
try (FileWriter fileWritter = new FileWriter(fileName, true)) {
fileWritter.write(ins + "\r\n");
} catch (IOException ex) {
}
}
给这个方法的空字符串“”的文件中插入一个“回车”
你检查FileWriter的文档?查看构造函数的第二个参数:https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html#FileWriter(java.io.File,%20boolean)(换句话说,你想'追加'到一个文件,而不是写/覆盖它) – domsson
可能重复的[如何将文本添加到现有的文件在Java](http://*.com/questions/1625234/how-to-附加文本到现有文件在java) – Tom
http:// *。com/questions/1625234 /如何追加文本到java中的现有文件 – AppX