Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试从文本区域写入文件,并从文件写入文本区域_Java_Swing_File Io - Fatal编程技术网

Java 尝试从文本区域写入文件,并从文件写入文本区域

Java 尝试从文本区域写入文件,并从文件写入文本区域,java,swing,file-io,Java,Swing,File Io,我可以成功地从文本区域写入到文件,但在从文件写入到文本区域时遇到了问题。问题似乎出在Window.setJTextArea()中。我曾尝试过使用不同类型的I/O选项,但却陷入僵局。我在这里有点力不从心,请指点一下。课程窗口中有更多的正文,但它没有通过本网站的审查阶段,所以我删除了它 class Window { file = new File("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/

我可以成功地从文本区域写入到文件,但在从文件写入到文本区域时遇到了问题。问题似乎出在Window.setJTextArea()中。我曾尝试过使用不同类型的I/O选项,但却陷入僵局。我在这里有点力不从心,请指点一下。课程窗口中有更多的正文,但它没有通过本网站的审查阶段,所以我删除了它

class Window {
        file = new File("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public File getFile() {
        return file;
    }
    public void setEmpty() {
        textArea = new JTextArea("Empty");
    }
    public void setJTextArea() {
        textArea = new JTextArea("");
        try {
            reader = new FileReader("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
            textArea.read(reader, "File");
            reader.close();
        } catch(IOException i) {
            i.printStackTrace();
        }
    }
    public void saveJTextArea() {
        try {
            writer = new FileWriter("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
            textArea.write(writer);
            writer.close();
        } catch (IOException i) {
            i.printStackTrace();
        }
    }
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

final class EventHandler extends Window {
    EventHandler() {
        put();
        get();
    }
    public void put() {
        put.addActionListener(new ActionListener() {
            // save text area to file
            public void actionPerformed(ActionEvent e) {
                saveJTextArea();
            }

        });
    }
    public void get() {
        get.addActionListener(new ActionListener() {
            // Display Contents of file
            public void actionPerformed(ActionEvent e) {
                setJTextArea();
            }

        });
    }
}
但是我在从文件到文本区域的书写上有困难。问题似乎出在Window.setJTextArea()中

你的方法是正确的。您应该使用
JTextArea
read(…)
方法

但是,问题是您创建了一个新的JTextArea,并且从未将文本区域添加到框架中。因此,文本只是存储在内存中,而不是显示在框架上

textArea = new JTextArea("");
只需删除上述声明:

//textArea = new JTextArea("");
read(…)
方法将在加载文件之前清除文本区域中的文本

请参阅:了解一个简单的工作示例

但是我在从文件到文本区域的书写上有困难。问题似乎出在Window.setJTextArea()中

你的方法是正确的。您应该使用
JTextArea
read(…)
方法

但是,问题是您创建了一个新的JTextArea,并且从未将文本区域添加到框架中。因此,文本只是存储在内存中,而不是显示在框架上

textArea = new JTextArea("");
只需删除上述声明:

//textArea = new JTextArea("");
read(…)
方法将在加载文件之前清除文本区域中的文本

请参阅:了解一个简单的工作示例