将JTextField和选定的单选按钮数据保存到文本文件

时间:2015-11-25 17:57:40

标签: java user-interface netbeans jdialog fileoutputstream

我在Netbeans中创建一个GUI,以获取用户对某些字段的输入。我不明白如何从选择到文本文件的JTextField和Radio Buttons中保存文本。

我附上了用户表格的下图。

一次"好的"按下按钮,用户获得一个保存文件的对话框。

目前,我可以将文件保存到文本文件中。但是文本文件中没有任何内容。如何从每个文本字段和单选按钮中检索数据?

请帮忙,我已经尝试了很多解决方案,但它没有正常工作。

private void buttonOkActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:

    try{
        String filename = JOptionPane.showInputDialog(null, "Enter the name to be saved", "File Name", 1 );
        FileOutputStream writer = new FileOutputStream(filename+".dat");

        txtFirstName.getText().toString(); //Trying to get text from First Name field.

        writer.close();
        JOptionPane.showMessageDialog(null,"Saved Successfully");

   }catch (Exception e) {
       JOptionPane.showMessageDialog(null, e);
   }
}  

sccreenshot

1 个答案:

答案 0 :(得分:0)

之间

FileOutputStream writer = new FileOutputStream(filename+".dat");

writer.close();

您应该使用FileOutputStream' write方法进行编写。

我认为你想要做的是:

FileOutputStream writer = null;
    try {

        FileOutputStream writer = new FileOutputStream(filename+".dat");
        OutputStreamWriter os = new OutputStreamWriter(writer);
        BufferedWriter bw = new BufferedWriter(os);
        bw.write(txtFirstName.getText().toString());

    } catch (FileNotFoundException ex) {
        Logger.getLogger(generafechas.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(generafechas.class.getName()).log(Level.SEVERE, null, ex);
    }finally{
        if(writer!=null)
            try {
                writer.close();
        } catch (IOException ex) {
            Logger.getLogger(generafechas.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

在上面的代码中,您可以看到FileOutputStream(通常以懒惰的方式引用为fos)被包装。

用Java编写文件有两类。读者/作家和流。 你的fos是一个流,所以它处理系统特定的实现并写入字节或整数,同时BufferedWritter(懒惰的bw)处理写入对象和基本类型。通过包装,我们可以获得两全其美,高级处理和低级功能。