阻止BufferedWriter覆盖现有的文本行

时间:2016-05-07 13:53:11

标签: java file bufferedreader

我有一个问题,那些知道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”。

2 个答案:

答案 0 :(得分:3)

您可以使用FileWriter

的第二个构造函数
new FileWriter("File name",true);

答案 1 :(得分:1)

您无需复制文件本身(无论如何也无法复制)只是为了追加它,您可以使用try-with-resource

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

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