我正在尝试创建一个程序,将文本保存在文件中,然后将文本添加到文件中。但是,每次我尝试写入文件时,它都会覆盖它并且不会写任何内容。我需要它来添加我想要的任何信息。
FileReader input;
BufferedReader readFile;
FileWriter output;
BufferedWriter writeFile;
try {
// input = new FileReader(password_file);
//readFile = new BufferedReader(input);
output = new FileWriter(password_file);
writeFile = new BufferedWriter(output);
//while ((temp_user= readFile.readLine()) !=null) {
//temp_pass = readFile.readLine();
//}
temp_user = save_prompt.getText();
temp_pass = final_password;
//Writes to the file
writeFile.write(temp_user);
writeFile.newLine();
writeFile.write(temp_pass);
}
catch(IOException e) {
System.err.println("Error: " + e.getMessage());
}
}
答案 0 :(得分:11)
您寻求的是追加模式。
new FileWriter(file,true); // true = append, false = overwrite
答案 1 :(得分:5)
用新内容替换所有现有内容。
new FileWriter(file);
保留现有内容,并在文件末尾追加新内容。
new FileWriter(file,true);
示例:
FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(data);
bufferWritter.close();
答案 2 :(得分:1)
要在文件末尾添加内容,请使用FileWriter
append()
方法
答案 3 :(得分:1)
将FileWrite衬管更改为:
output = new FileWriter(password_file, true);
告诉FileWriter追加
http://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html
答案 4 :(得分:0)
无论何时键入
new BufferedWriter(output);
或“写”,您正在覆盖“输出”文件。尝试确保在整个程序过程中只声明一个新的BufferedWriter,并将append()附加到文件而不是write()。