当前位置: 代码迷 >> J2SE >> J2SE之 记事簿相关功能实现——源代码
  详细解决方案

J2SE之 记事簿相关功能实现——源代码

热度:2647   发布时间:2013-02-25 00:00:00.0
J2SE之 记事本相关功能实现——源代码
NotePaid.java package notepaid;import java.awt.FileDialog;importjava.awt.Frame;importjava.awt.Menu;importjava.awt.MenuBar;importjava.awt.MenuItem;importjava.awt.TextArea;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class NotePaid extends Frameimplements ActionListener{       MenuBarmb ;       Menufile,help;       MenuItemmiOpen,miSave,miSaveAs,miExist;       FileDialogfd_Open,fd_Save,fd_SaveAs;   TextArea ta;   String path = "";       publicNotePaid(){           Frame f = new Frame("记事本");           mb = new MenuBar();           file = new Menu("文件");           help = new Menu("帮助");           miOpen = new MenuItem("打开");           miSave = new MenuItem("保存");           miSaveAs = new MenuItem("另存为");           miExist = new MenuItem("退出");           ta = new TextArea();           file.add(miOpen);           file.add(miSave);           file.add(miSaveAs);           file.add(miExist);                     mb.add(file);           mb.add(help);           miOpen.addActionListener(this);           miSave.addActionListener(this);           miSaveAs.addActionListener(this);           miExist.addActionListener(this);              fd_Open= new FileDialog(this,"打开",FileDialog.LOAD);           fd_Save = new FileDialog(this, "保存", FileDialog.SAVE);           fd_SaveAs = new FileDialog(this, "另存为", FileDialog.SAVE);           this.addWindowListener(newWindowAdapter(){                      @Override                     publicvoid windowClosing(WindowEvent e) {                            System.exit(0);                     }                            });           this.setMenuBar(mb);           this.add(ta);           this.setBounds(400,0,600,750);           this.setVisible(true);                        }             publicstatic void main(String[] args) {              newNotePaid();        }        @Override       publicvoid actionPerformed(ActionEvent e) {              Stringname = e.getActionCommand();              if(name.equals("打开")){            fd_Open.setVisible(true);            getReadPath(fd_Open);              }elseif(name.equals("保存")){                       /*                        String d = fd_Save.getDirectory();                        String f = fd_Save.getFile();                        path = d+f;*/                                         if((path== null) ||(path.equals(""))){                            fd_Save.setVisible(true);                            getWriteSaveAsPath(fd_Save);                                                }else{                                                       getWriteSavePath(fd_Save);                     }                                  }elseif(name.equals("另存为")){                     fd_SaveAs.setVisible(true);                     getWriteSaveAsPath(fd_SaveAs);              }          else if (name.equals("退出")){              System.exit(0);       }       }  public void openFile(String path){          //再打开文件之前将记事本的内容清空。          ta.setText("");          FileReader fr = null;              BufferedReaderbr = null;          try {              fr= new FileReader(path);           br = new BufferedReader(fr);              Stringcontent = null;              while((content = br.readLine())!=null) {                                ta.append(content);                     //每读出一行就向该行的末尾处追加一个换行符。                     ta.append("\r\n");              }       }catch (IOException e) {              e.printStackTrace();       }finally{              if(br!= null){                     try{                            br.close();                     }catch (IOException e) {                            e.printStackTrace();                     }              }       }   }  public void saveFile(String path){          FileWriter fw = null;          BufferedWriter bw = null;          try {              fw= new FileWriter(path);              bw= new BufferedWriter(fw);              Stringcontent = ta.getText();              bw.write(content);              bw.flush();       }catch (IOException e) {                    e.printStackTrace();       }finally{              if(bw!=null){                     try{                            bw.close();                     }catch (IOException e) {                            e.printStackTrace();                     }              }       }   }  public void saveFileAs(String path){          FileWriter fw = null;          BufferedWriter bw = null;          try {                 fw = new FileWriter(path);                 bw = new BufferedWriter(fw);                 String content = ta.getText();                 bw.write(content);                 bw.flush();          } catch (IOException e) {                                 e.printStackTrace();          }finally{                 if(bw!=null){                        try {                               bw.close();                        } catch (IOException e) {                               e.printStackTrace();                        }                 }          }   }  public void getReadPath(FileDialog fd){          String d = fd.getDirectory();          String f = fd.getFile();          if((d!=null &&!d.equals(""))&&(f!=null &&!f.equals(""))){                 path = d+f;                 openFile(path);          }    }  public void getWriteSaveAsPath(FileDialog fd){          String d = fd.getDirectory();          String f = fd.getFile();          if((d!=null && !d.equals(""))&&(f!=null&& !f.equals(""))){                 path = d+f;                 saveFileAs(path);          }   }  public void getWriteSavePath(FileDialog fd){        saveFile(path);         }}

好了,到这里,关于流的处理中的字符流部分已经介绍完了,之后会为您介绍关于字节流的操作。