【问题标题】:Stopping the BufferedWriter from overwirting an existing line of text阻止 BufferedWriter 覆盖现有的文本行
【发布时间】:2016-05-07 13:53:10
【问题描述】:

我有一个问题要问那些知道 BufferedWriter 和 BufferedReader 如何工作的人。我想在已经存在的第一行下方添加一行 Text,但 Java 给了我一个 NullPointerException。

代码如下:

String myClass = "none";
File ff = new File("src/Resources/Saves/test.txt");
try{
   FileWriter fw = new FileWriter(ff);
   BufferedWriter bw = new BufferedWriter(fw);
   FileReader fr = new FileReader(ff);
   BufferedReader br = new BufferedReader(fr);
   bw.write(br.readLine()); //NullPointerException is here
   bw.newLine();
   bw.write(myClass);
   bw.flush();
   bw.close();
   br.close();
} catch(IOException ecc){
   ecc.printStackTrace();
}

理论上,它应该重写第一行文本,开始一个新行并写我的字符串“myClass”。

【问题讨论】:

    标签: java file bufferedreader


    【解决方案1】:

    你可以使用FileWriter的第二个构造函数

    new FileWriter("File name",true);
    

    【讨论】:

      【解决方案2】:

      你不需要复制一个文件在它自身之上(这无论如何都行不通)只是为了追加它,你可以使用 try-with-resource

      String myClass = "none";
      File ff = new File("src/Resources/Saves/test.txt");
      try (PrintWriter pw = new PrintWriter(ff)) {
         pw.println(myClass);
      }
      

      除非你打算用它做点什么,否则我不会捕捉到异常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多