关于java:Java实验使用GUI实现文本文件读写显示

8次阅读

共计 2195 个字符,预计需要花费 6 分钟才能阅读完成。

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GUIDemo extends JFrame{

private static final String TARGET_FILE = "./temp.txt";
// 三个组件
private JButton saveButton;
private JButton loadButton;
private TextArea textArea;
// 容器
private Container container;
// 指标文件
private File targetFile;
public GUIDemo() throws IOException {
    // 设置 title
    super("File Demo");        
    // 设置流布局
    setLayout(new FlowLayout());
    // 获取容器
    container = getContentPane();        
    // 创立指标文件对象
    targetFile = new File(TARGET_FILE);
    if(targetFile.createNewFile()) {System.out.println([ 电子钱包](https://www.gendan5.com/wallet.html)"文件不存在,创立胜利");
    }else {System.out.println("文件存在");
    }
    // 三个组件
    textArea = new TextArea();
    saveButton = new JButton("save");
    loadButton = new JButton("load");
    // 保留文件按钮点击事件
    saveButton.addActionListener(new ActionListener() {            
        @Override
        public void actionPerformed(ActionEvent e) {
            
            try {
                // 关上文件字符输入流
                FileWriter writer = new FileWriter(targetFile);        
                // 获取文本显示区文本
                String result = textArea.getText();                
                // 写入文件
                writer.write(result);                    
                // 敞开输入流
                writer.close();
                // 清空文本显示区内容
                textArea.setText("");                    
                System.out.println("存档胜利");
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();}
        }
    });
    // 读入文件按钮点击事件
    loadButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {                
            try {
                // 字符读入流
                FileReader reader = new FileReader(targetFile);                    
                // 读入缓冲区
                char[] buffer = new char[1024];                    
                // 读入后果
                StringBuffer result = new StringBuffer();                    
                // 每次读入缓冲区的长度
                int len;                    
                // 从读入流中读取文件内容并造成后果
                while((len = reader.read(buffer)) != -1) {result.append(buffer,0,len);
                }                
                // 敞开读入流
                reader.close();                    
                // 更新文本显示区内容
                textArea.setText(result.toString());                
                System.out.println("读档胜利");
            } catch (FileNotFoundException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();} catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();}
        }
    });
    // 装填三个组件
    container.add(textArea);
    container.add(loadButton);
    container.add(saveButton);
    // 调整大小
    setSize(500, 300);
    // 显示
    setVisible(true);
}
public static void main(String[] args) throws IOException {GUIDemo demo = new GUIDemo();
    demo.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

}

正文完
 0