2011-06-13 38 views
0

我在我的智慧在這裏結束。java - PrintWriter與FileWriter和BufferedWriter

我想打印幾千行的文件,使用以下:

 BufferedWriter bw = new BufferedWriter(new FileWriter(fileName, true)); 

     PrintWriter pw = new PrintWriter(bw, true); 

文件已經由文本,所以我追加,因此真正的說法,FileWriter的的。

現在在過去的兩個小時裏,似乎令我困惑的是,大約85-90%的線條被寫入文件,而FIRST的10-15%不是。

邏輯上的代碼沒有什麼問題,因爲如果我在控制檯中打印它,所有行都會打印出來。

我在這裏錯過了什麼嗎?

我只在打印完所有輸出後才執行pw.close()。

+0

你可以發佈一些更多的代碼嗎?你可以嘗試一個pw.flush() - 不知道它是否會有所作爲, – Sai 2011-06-13 01:22:00

+0

你的描述中沒有任何東西對我來說似乎是錯誤的。 – MeBigFatGuy 2011-06-13 01:22:16

+0

@Sai,他啓用了自動刷新功能。 – mre 2011-06-13 01:23:41

回答

0

在pw.close()之前,也許你應該調用flush()來確保所有的流都被寫出來。

+0

我已經試過pw.flush()。我也在PrinterWriter構造函數 – kkudi 2011-06-13 01:24:58

+0

中設置了autoFlush = true,我不明白爲什麼只有前10%沒有被寫入,剩下的是。在控制檯中,前10%是打印出來的:/ – kkudi 2011-06-13 01:25:18

+0

這看起來很奇怪,也許顯示全碼? (http://www.java2s.com/Tutorial/Java/0180__File/NestedcreationofFileWriterBufferedWriterandPrintWriter.htm)代碼非常簡單。 – Jasonw 2011-06-13 01:37:36

1

在每次在代碼中寫入文件之後,您可能都希望調用手動的.flush()命令,以確保正確寫出內容。

這很令人費解,如果問題依然存在,請回復。

希望它有幫助!

乾杯, Vern

+0

沒有運氣:/甚至在每一條打印線 – kkudi 2011-06-13 01:31:16

+0

hm ...這是一個你正在遇到的奇怪問題。關心分享什麼操作系統? JDK版本?目標平臺版本?您正在使用?也許可能會出現一些怪癖或錯誤。此外,請分享您遇到問題的部分代碼,以便讓很多對眼睛可以看一看嗎? – Vern 2011-06-13 01:37:11

+0

Java版本「1.6.0_16」 Java™SE運行時環境(版本1.6.0_16-b01) Java HotSpot™64位服務器虛擬機(版本14.2-b01,混合模式), Linux tui 2.6。 28-15-generic#52-Ubuntu SMP Wed Sep 9 10:48:52 UTC 2009 x86_64 GNU/Linux – kkudi 2011-06-13 01:40:30

相關問題