所以我正在尝试将内容写入文件并且它可以工作,但是当我多次调用此方法时,它会删除我之前使用new编写的内容。所以我想知道我该怎么办,所以这个方法不会删除我之前添加到文件中的文本并将新文本添加到 下一行。
public static void writetofile(String id, String content) throws IOException
{
try {
FileWriter filewriter = new FileWriter("Random.txt");
BufferedWriter out = new BufferedWriter(filewriter);
out.write(id+" "+ content);
out.close();
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
答案 0 :(得分:2)
FileWriter
的构造函数签名带有一个控制追加行为的布尔参数。提供附加是你想要的,你应该构造FileWriter
,并将此布尔值设置为true
:
FileWriter filewriter = new FileWriter("Random.txt", true);
注意,在单参数构造函数的情况下,输出被写入文件的开头(请参阅由FileOutputStream
包装的FileWriter
的实现),因此调用单参数构造函数是等效的将布尔参数设置为false
。
答案 1 :(得分:2)
FileWriter filewriter = new FileWriter("Random.txt", true);
根据java doc
在给定File对象的情况下构造FileWriter对象。如果第二个参数是true
,那么字节将被写入文件的末尾而不是开头。
Parameters:
file - 要写入
的File对象append - 如果为true,则将字节写入文件末尾而不是开头