这是将用户输入的数据保存到文件中的代码段。这很好。即它在想要的位置创建文件,但问题是创建的文件是空的。这是什么原因?
JFileChooser save = new JFileChooser();
int option = save.showSaveDialog( this );
if( option == JFileChooser.APPROVE_OPTION ) {
try {
BufferedWriter writer = new BufferedWriter( new FileWriter( save.getSelectedFile().getPath() + ".txt") );
String messageToBeSaved = jTextArea2.getText();
int lengthOfMessage = messageToBeSaved.length();
writer.write( messageToBeSaved, 0 , lengthOfMessage );
JOptionPane.showMessageDialog(new JFrame() , "Message saved");
} catch(Exception exc) {
System.out.println(exc);
}
如果此代码段有任何问题,请告诉我哪里出错了。
答案 0 :(得分:4)
由于它是一个缓冲的编写器,你应该刷新并关闭它。
尝试添加此内容:
writer.flush();
writer.close();
要完全正确,您应该在finally
区块中关闭作家。
编辑:实际上不需要刷新,因为关闭会反正冲洗。
答案 1 :(得分:1)
您应该在向其写入数据后关闭BufferedWriter
。这将刷新缓冲区,然后关闭它。
答案 2 :(得分:0)
您必须close
writer
,然后缓冲区的内容将刷新到磁盘。
答案 3 :(得分:0)
可能是因为你不是flushing流。
答案 4 :(得分:0)
完成后你应该调用write.close()。