と を使用して、数行の文字列をファイルに書き込む必要がある単純なプログラムがありFileWriter
ますBufferedWriter
。ファイルから(この場合)まったく同じデータを既に読み取り、ランタイムメモリに保存しますが、書き込みを完全に拒否し、理由がわかりません。通常、私はそれをデバッグして何が起こっているのかを確認しようとしますが、何を探しているのかわかりません。
これが私のコードです:
public void close () {
FileWriter output = null;
BufferedWriter fileOut = null;
// I use the exact same method to read from file so this should work
// this.prajituri :: ArrayList
// toString is @Override
try {
output = new FileWriter(this.fileName);
fileOut = new BufferedWriter(output);
for (int i = 0; i < this.prajituri.size(); i++) {
fileOut.write(prajituri.get(i).toString());
System.out.println(prajituri.get(i).toString());
fileOut.newLine();
}
} catch (IOException ioe) {
System.out.println("Output error: " + ioe);
} finally {
if (fileOut != null)
fileOut = null;
if (output != null)
output = null;
}
}
念のため、ここに私のtoStringがあります:
@Override
public String toString () {
return this.name + ";" + this.weight + ";" + this.price;
}
ファイルに書き込もうとするたびに、空のファイルが返されます。私は何か間違っていますか?
私はチェックしましたが、this.prajituri
実際には良好です(必要なすべてのデータがあります)。それでも何も書かない。System.out.println(prajituri.get(i).toString())