将textFields / textArea写入文本文件

时间:2013-11-24 22:51:21

标签: java swing file-io textarea textfield

因此,在我正在制作的applet中,我需要在按下提交按钮后将我的两个文本字段中的值和我的文本区域写入文本文件。正在阅读文本很好,但它没有录制到文本文档。

nameFieldtopicField是我的两个文本字段,paragraphArea是我的文本区域。 Topics.txt是我在Java包中的空白文本文件。

   JButton submitButton = new JButton("SUBMIT");
    submitButton.setSize(100, 30);
    submitButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {


            String name = nameField.getText();
            String topic = topicField.getText();
            String paragraph = paragraphArea.getText();


            String fileWrite = "Topics.txt";

            try {
                FileWriter fileWriter =
                    new FileWriter(fileWrite);

                BufferedWriter bufferedWriter =
                    new BufferedWriter(fileWriter);

                bufferedWriter.newLine();
                bufferedWriter.write(name);
                bufferedWriter.newLine();
                bufferedWriter.write(topic);
                bufferedWriter.newLine();
                bufferedWriter.write(paragraph);
                bufferedWriter.newLine();

                bufferedWriter.close();
            }
            catch(IOException ex) {
                System.out.println(
                    "Error writing to file '"
                    + fileWrite + "'");
            }

        }
     });
add(submitButton);
}
}

我真的不明白我在这里做错了什么。任何帮助将不胜感激。

编辑: 我弄清楚问题是什么,它是记录到主题文档的bin文件夹副本,而不是src。

4 个答案:

答案 0 :(得分:0)

试试这个:

try {
    FileWriter fileWriter =
        new FileWriter(fileWrite);

    BufferedWriter bufferedWriter =
        new BufferedWriter(fileWriter);

    bufferedWriter.newLine();
    bufferedWriter.write(name);
    bufferedWriter.newLine();
    bufferedWriter.write(topic);
    bufferedWriter.newLine();
    bufferedWriter.write(paragraph);
    bufferedWriter.newLine();

    }
    catch(IOException ex) {
            System.out.println(
                "Error writing to file '"
                + fileWrite + "'");
    }
    finally {
        if (bufferedWriter != null) {
            bufferedWriter.close();
        }
    }

答案 1 :(得分:0)

尝试使用打印编写器而不是文件编写器和bufferedWriter。

        try {
            PrintWriter printWriter = new PrintWriter("Topics.txt");
        } catch (FileNotFoundException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }

然后保存到文件,只需使用'println'

printWriter.println(name);
printWriter.println(topic);
printWriter.println(paragraph);

printWriter.close();

我不确定PrintWriter或FileWriter是否更好,但PrintWriter对我有效!

答案 2 :(得分:0)

这可能是因为您的应用程序是applet吗?有一个Oracle页面here,其中包含以下有关applet的信息:“它们无法访问客户端资源,例如本地文件系统,可执行文件,系统剪贴板和打印机。”

如果是这种情况,我认为您可能需要一个特权小程序。

答案 3 :(得分:0)

代码工作正常,只是在不同的地方阅读和写作。