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); }}
好了,到这里,关于流的处理中的字符流部分已经介绍完了,之后会为您介绍关于字节流的操作。