BufferedWriter写入现有文件

时间:2013-12-31 16:47:22

标签: java file text bufferedwriter

我正在尝试创建一个程序,将文本保存在文件中,然后将文本添加到文件中。但是,每次我尝试写入文件时,它都会覆盖它并且不会写任何内容。我需要它来添加我想要的任何信息。

    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());
    }
}

5 个答案:

答案 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()。