文件编写器如何停止从文件写入文本

时间:2014-03-19 12:35:03

标签: java file overwrite filewriter

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class test3 {
        public static void main(String[] args) {

                //write
                try {
                        FileWriter fw = new FileWriter("C:\\Users\\Danny\\Desktop\\Credits.txt");
                        PrintWriter pw = new PrintWriter (fw);

                        pw.println("This is just some test data");

                        pw.close();
                }
                catch (IOException e){
                        System.out.println("Error!");
                }

                //read
                try {
                        FileReader fr = new FileReader("C:\\Users\\Danny\\Desktop\\Credits.txt");
                        BufferedReader br = new BufferedReader (fr);

                        String str;

                        while ((str = br.readLine()) != null ) {
                                System.out.println(str + "\n");
                        }
                        br.close();            

                }
                catch (IOException e){
                        System.out.println("File not found!");
                }

        }
}

这有效,但每次使用新输入时都会写入文本文件。如何在写入时停止此操作,以便将所有信息存储在文件中,就像存档一样。

3 个答案:

答案 0 :(得分:5)

true传递给您的FileWriter,如下所示 -

FileWriter fw = new FileWriter("C:\\Users\\Danny\\Desktop\\Credits.txt",true);

FileWriter构造函数的第二个参数将告诉它附加到文件。

文档--> http://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html#FileWriter(java.lang.String,boolean)

答案 1 :(得分:0)

下次要写入文件时,以附加模式打开文件。

FileWriter fw = new FileWriter("C:\\Users\\Danny\\Desktop\\Credits.txt",true);

答案 2 :(得分:0)

使用:

Files.newBufferedWriter(Paths.get("yourfile"), StandardCharsets.UTF_8,
    StandardOpenOption.APPEND);