[Java] BufferedReaderBufferedWriter 简单记事本

    技术2022-05-20  46

    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的应用


    最新回复(0)