2015-05-05 61 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

相关问题