java利用Swing和IO流实现记事本保存和读取文件

需求:用swing编写一个简易的记事本界面

           用IO流完成保存文件和读取文件的操作

package Chapter06;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

/**
 * 需求:实现简易记事本读取文件保存文件的简单操作
 * @author:mg
 */
public class Notepad extends JFrame implements ActionListener {
    //创建组件
    JMenu jm1;
    JMenuBar jmb1;
    JTextArea jta;
    JMenuItem jmi1;
    JMenuItem jmi2;

    //构造方法实现界面生成
    public Notepad(){
        //创建jta
        jta = new JTextArea();
        jmb1 = new JMenuBar();
        this.add(jta);
        jm1 = new JMenu("文件");
        this.setJMenuBar(jmb1);
        jmb1.add(jm1);

        jmi1 = new JMenuItem("打开文件");
        jmi1.setActionCommand("open");
        jmi1.addActionListener(this);
        jmi2 = new JMenuItem("保存文件");
        jmi2.setActionCommand("save");
        jmi2.addActionListener(this);

        jm1.add(jmi1);
        jm1.add(jmi2);

        this.setTitle("记事本");
        this.setSize(600,400);
        this.setLocation(400,300);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    //本类进行事件处理
    @Override
    public void actionPerformed(ActionEvent e){
        if(e.getActionCommand().equals("save")){
            String filename = "D:\\IDEA代码\\Home_Work\\src\\Chapter06\\a.txt";
            FileWriter fw = null;
            BufferedWriter bw = null;
            try{
                fw = new FileWriter(filename);
                bw = new BufferedWriter(fw);
                String str = this.jta.getText();
                bw.write(this.jta.getText());
                System.out.println("写入文件成功!");
            }catch(Exception e1){
                e1.printStackTrace();
            }finally {
                try{
                    bw.close();
                    fw.close();
                }catch (IOException e2){
                    e2.printStackTrace();
                }
            }

        }else if(e.getActionCommand().equals("open")){
            String filename = "D:\\IDEA代码\\Home_Work\\src\\Chapter06\\a.txt";
            FileReader fr = null;
            BufferedReader br = null;

            try{
                fr = new FileReader(filename);
                br = new BufferedReader(fr);
                String line = null;
                String add = "";
                while((line = br.readLine())!=null){
                    add += line + "\n";
                }
                this.jta.setText(add);
                System.out.println("读取文件成功!");
            }catch (IOException e1){
                e1.printStackTrace();
            }finally {
                try{
                    br.close();
                    fr.close();
                }catch(IOException e2){
                    e2.printStackTrace();
                }
            }
        }
    }
}
package Chapter06;
//测试类
public class Test {
    public static void main(String[] args) {
        Notepad np = new Notepad();
    }
}

代码敲的不容易,给个三连再走吧!

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MGCoding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值