テキストファイルにデータを書き込みたい。しかし、私のアプリケーションでは、アイテムをテキストファイルに書き続けたいと思います(つまり、書きたいテキストをファイルに追加する必要があり、毎回新しいファイルを作成する必要はありません)
私のコードは次のとおりです。しかし、次回ファイルに何かを書き込むときに、どうすればテキストを追加できますか?
1.) 以下のコードの問題は、最初はファイルに書き込みますが、2 回目に書き込もうとすると、次の例外が発生します。
java.io.IOException: Stream closed
2.) アプリケーションが閉じられるまで同じファイルに書き込めるようにしたい。したがって、アプリケーションが閉じているときにストリームを閉じるにはどうすればよいですか?
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFileExample {
public void writeToFile(String stuff) {
try {
File file = new File("../somefile.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(stuff);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
更新 1
private File file;
public WriteToFileExample(){
file = new File("../somefile.txt");
}
public void writeToFile(String stuff) {
try {
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(stuff);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
例外
Exception in thread "main" java.lang.NullPointerException
at com.proj.example.Log.WriteToFile(WriteToFileExample.java:3)
を指しif (!file.exists()) {
ます。