簡體   English   中英

刷新並關閉后,BufferedWriter不會寫入文件

[英]BufferedWriter does not write to file after flush and close

我有以下示例應用程序,在其中寫入文件,並在關閉編寫器后立即嘗試從文件讀取,但令我驚訝的是,沒有任何內容寫入文件。

我已經確保在讀取文件之前調用了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();
}}

每次創建新的TestWrite_Read()您都在打開文件進行輸出,從而清空文件。

不要那樣做 如果您只想讀取文件,請不要先打開文件以進行輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM