2017-04-19 3 views
0

ファイルに書き込むサンプルアプリケーションがあり、ライターを閉じた直後にファイルから読み取ろうとしましたが、驚いて何もファイルに書き込まれません。BufferedWriterは、フラッシュおよびクローズ後にファイルに書き込みません。

ファイルを読み込む前にflush()メソッドとclose()メソッドが呼び出されていることを確認しましたが、ここでも私を助けてくれません。

次のコードが機能しない理由を理解するのに役立つものがありますか。

public class TestWrite_Read { 

private File file; 
private Writer writer; 

public TestWrite_Read() { 
    file = new File("E:\\temp\\test.txt"); 
    try { 
     writer = new BufferedWriter(new FileWriter(file)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

public static void main(String[] args) throws Exception { 
    new TestWrite_Read().write(); 
    new TestWrite_Read().read(); 
} 

private void read() throws Exception { 
    BufferedReader reader = new BufferedReader(new FileReader(file)); 
    System.out.println("reader.readLine() = " + reader.readLine()); 
    reader.close(); 
} 

private void write() throws Exception { 
    writer.write(String.valueOf(104)); 
    writer.flush(); 
    writer.close(); 
}} 

答えて

1

あなたは、あなたがそれを空に出力用のファイルを開いている新しいTestWrite_Read()を作成するたびに。

しないでください。ファイルから読み取るだけの場合は、最初にの出力をに開いてはいけません。

関連する問題