没有任何内容保存在文件中

时间:2011-07-20 11:33:06

标签: java file io jfilechooser

这是将用户输入的数据保存到文件中的代码段。这很好。即它在想要的位置创建文件,但问题是创建的文件是空的。这是什么原因?

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);
            }

如果此代码段有任何问题,请告诉我哪里出错了。

5 个答案:

答案 0 :(得分:4)

由于它是一个缓冲的编写器,你应该刷新并关闭它。

尝试添加此内容:

writer.flush();
writer.close();

要完全正确,您应该在finally区块中关闭作家。

编辑:实际上不需要刷新,因为关闭会反正冲洗。

答案 1 :(得分:1)

您应该在向其写入数据后关闭BufferedWriter。这将刷新缓冲区,然后关闭它。

答案 2 :(得分:0)

您必须close writer,然后缓冲区的内容将刷新到磁盘。

答案 3 :(得分:0)

可能是因为你不是flushing流。

答案 4 :(得分:0)

完成后你应该调用write.close()。