这是我目前的代码:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFile {
public static void main(String[] args) {
}
public void Write(String content) {
BufferedWriter bw = null;
try {
//Specify the file name and path here
File file = new File("C:\\Users\\Gbruiker\\Dropbox\\Java\\Rekenen\\src\\sommen.txt");
/* This logic will make sure that the file
* gets created if it is not present at the
* specified location*/
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
bw = new BufferedWriter(fw);
bw.append(content);
bw.append("\n");
System.out.println("File written Successfully");
}
catch (IOException ioe) {
ioe.printStackTrace();
}
finally {
try {
if (bw != null)
bw.close();
}
catch (Exception ex) {
System.out.println("Error in closing the BufferedWriter" + ex);
}
}
}
}
如何制作它以便它不会覆盖文本文件中的当前文本?
有什么建议吗? 我是以正确的方式做到的吗? 程序必须向文件添加一些文本,但不能覆盖当前内容。因为现在它正在覆盖当前内容。
答案 0 :(得分:5)
使用new FileWriter(file, true);
构造函数,true
用于附加到文件而不是覆盖。
答案 1 :(得分:0)
将FileWriter fw = new FileWriter(file);
更改为FileWriter fw = new FileWriter(file,true);
。
布尔值附加模式。
来自javadoc:
public FileWriter(String fileName, 布尔附加) throws IOException在给定文件名的情况下构造FileWriter对象,该文件名带有指示是否附加数据的布尔值 书面。参数:fileName - String系统相关 filename.append - 如果为true则为boolean,然后将数据写入 文件的结尾而不是开头。抛出:IOException - 如果 命名文件存在但是是目录而不是常规文件, 不存在但无法创建,或无法打开任何 其他原因