[Java] BufferedReader/BufferedWriter 简单记事本

来源:互联网 发布:单片机的发展与应用 编辑:程序博客网 时间:2024/06/07 05:03

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class FileDialogTest{
    public static void main(String[] args){
        //实例化各个组件
        JFrame f = new JFrame("文件对话框测试");
        JPanel p1 = new JPanel();
        final TextArea ta = new TextArea(30,80);
        ta.setEditable(true);
        JButton btnOpen = new JButton("打开文件");
        JButton btnSave = new JButton("保存文件");
        //给打开按钮添加事件监听器
        btnOpen.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                //为FileDialog准备新的frame
                JFrame file_Open = new JFrame();
                //实例化文件对话框为打开文件类型
                FileDialog Open_Dialog = new FileDialog(file_Open,"打开文件",FileDialog.LOAD);
                //设置文件对话框可见
                Open_Dialog.setVisible(true);
                //得到打开文件对话框中的路径字符串并赋值给path_Open
                String path_Open = Open_Dialog.getDirectory();
                //得到打开文件对话框中文件的文件名,并赋值给name_Open
                String name_Open = Open_Dialog.getFile();
                //定义一个FileReader,用来读取字符流,从而形成一个字符输入流
                FileReader fr;
                //定义一个BufferedReader, 用来从字符输入流中读取文本
                BufferedReader br;
                //定义一个String类型的字符串,赋值为空
                String strOut="";
               
                //程序有可能会出现异常,要用try-catch语句
                try{
                    ta.setText("");
                    //将目标文件实例化成一个字符输入流
                    fr = new FileReader(path_Open+name_Open);
                    //将字符输入流实例化成一个BufferedReader
                    br = new BufferedReader(fr);
                    //当条件为真时,循环输入目标文件里每一行的字符串
                    while(strOut!=null){
                        //将BufferedReader中的输入给strOut
                        strOut = br.readLine();
                        //如果strOut等于null的时候,就停止读取
                        if(strOut == null)
                            break;
                        //将strOut字符串append到TextArea中的
                        ta.append(strOut+"/n");
                        //将strOut字符串输入到控制台
                        System.out.println(strOut);
                   
                }
            }
                catch(IOException err){}   
        }
        });
        //为保存文件按钮添加相应的事件监听器
        btnSave.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                //实例化一个Frame,为FileDialog做准备
                JFrame file_Save = new JFrame();
                //实例化一个文件对话框,并定义其为保存文件类型
                FileDialog Save_Dialog = new FileDialog(file_Save,"保存文件",FileDialog.SAVE);
                //设置文件对话框可见
                Save_Dialog.setVisible(true);
                //将保存文件对话框的路径字符串赋值给path_Save
                String path_Save = Save_Dialog.getDirectory();
                //将需要保存文件的文件名字符串赋值给name_Save
                String name_Save = Save_Dialog.getFile();
                //定义一个文件
                File f;
                //定义一个文件字符流
                FileWriter fw;
                //定义一个BufferedWriter
                BufferedWriter bw;           
                //定义一个String类型的字符串   
                String strIn="";
                //可能有异常抛出,用try-catch语句
                try{
                    //将TextArea中的文本内容赋值给字符串strIn
                    strIn = ta.getText();
                    //实例化一个文件,并将文件路径和文件传进去
                    f = new File(path_Save+name_Save);
                    //真的创建一个目标文件,这时目标文件的内容为空
                    f.createNewFile();
                    //实例化一个写入字符流,
                    fw = new FileWriter(f);
                    //实例化一个写入字符流的BufferedWriter对象                   
                    bw = new BufferedWriter(fw);
                    //利用BufferedWriter的方法,将字符流写入到文件中
                    bw.write(strIn);
                    //刷新该流的缓冲
                    bw.flush();
                    //关闭BufferedWriter
                    bw.close();
                    //将字符输出到控制台
                    System.out.println(strIn);
                }
                catch(IOException err){}           
            }
        });
        //添加按钮到Panel
        p1.add(btnOpen);
        p1.add(btnSave);   
       
        //添加Panel 和 TextArea 到Frame中
        f.add(p1,BorderLayout.NORTH);
        f.add(ta,BorderLayout.SOUTH);   
        //设置Frame的关闭属性
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        f.setLocationByPlatform(true);
        f.pack();
        f.setVisible(true);
    }
}

//重点是 File,FileDialog,FileReader,FileWriter,BufferedReader,BufferedWriter的应用

原创粉丝点击