2015-05-05 94 views
1

我寫信使用的PrintWriter這樣的文件:PrintWriter在寫入文件時會截斷字符串,爲什麼?

Gson g = new Gson(); 
Article article = g.fromJson(reader, Article.class); 
String json = g.toJson(article); 

PrintWriter out = new PrintWriter(new FileWriter(cacheFile.getAbsolutePath())); 
out.print(json); 

然而,當我看到它在文件中的JSON字符串被截斷。這可能是什麼原因?

+1

沒有你齊平,然後關閉PrintWriter的? – Blackbelt

+0

我沒有,讓我嘗試關閉和沖洗,謝謝 –

+0

@Blackbelt,謝謝,它現在工作! :)我總是不得不在結束前沖洗? –

回答

2

它沒有。您未能關閉文件。

+0

謝謝,讓我試試。如果我不關閉它會發生什麼?爲什麼只有一部分字符串被寫入文件? –

+0

@Maximus會發生什麼? 「寫入緩衝區」中可能還有某些內容,並且資源仍處於綁定狀態。 – Tom

+1

未定義會發生什麼。任何事情都可能發生,包括什麼。你必須關閉任何可以關閉的東西。你必須釋放每一個獲得的資源。 – EJP

相關問題