首页 > 代码库 > IO流(三)
IO流(三)
活鱼会逆流而上,死鱼才会随波逐流。
本讲内容:文件流
例一:写一个记事本
package b; import java.io.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class NotePad extends JFrame implements ActionListener{ JTextArea wby; JScrollPane gd; JMenuBar cd; JMenu cd1; JMenuItem ycd1,ycd2; public static void main(String[] args) { NotePad np=new NotePad(); } public NotePad() { wby=new JTextArea(); gd=new JScrollPane(wby); cd=new JMenuBar(); cd1=new JMenu("文件(F)"); cd1.setMnemonic('F'); ycd1=new JMenuItem("打开",new ImageIcon("images/1.gif")); //对打开按钮注册监听 ycd1.addActionListener(this); ycd1.setActionCommand("open"); ycd2=new JMenuItem("保存",new ImageIcon("images/3.gif")); //对保存按钮做监听 ycd2.addActionListener(this); ycd2.setActionCommand("save"); cd1.add(ycd1); cd1.add(ycd2); cd.add(cd1); this.setJMenuBar(cd); this.add(gd); // 设置窗体属性 this.setTitle("迷你版记事本—小劲"); this.setLocation(300, 300); this.setSize(500, 400); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("open")){ //文件选择组件 JFileChooser fch=new JFileChooser(); //设置标题 fch.setDialogTitle("请选择文件"); //(null是打开的时候使用窗口默认的方式) fch.showOpenDialog(null); //使该组件可见 fch.setVisible(true); //得到用户选中的文件全路径 String filename=fch.getSelectedFile().getAbsolutePath(); FileReader fr=null; BufferedReader br=null; try { fr=new FileReader(filename); br=new BufferedReader(fr); //从文件中读取信息并显示文本域中 String s=""; String all=""; while((s=br.readLine())!=null){ all+=s+"\r\n"; } wby.setText(all);//放置到wby即可 } catch (Exception e1) { e1.printStackTrace(); }finally{ try { br.close(); } catch (IOException e1) { e1.printStackTrace(); } } }else if(e.getActionCommand().equals("save")){ JFileChooser fch=new JFileChooser(); fch.setDialogTitle("另存为"); fch.showSaveDialog(null); fch.setVisible(true); //用户希望把文件保存到何处,文件的全路径 String file=fch.getSelectedFile().getAbsolutePath(); //准备写入到指定文件 FileWriter fw=null; BufferedWriter bw=null; try { fw=new FileWriter(file); bw=new BufferedWriter(fw); bw.write(this.wby.getText()); } catch (IOException e1) { e1.printStackTrace(); }finally{ try { bw.close(); } catch (IOException e1) { e1.printStackTrace(); } } } } }
本讲就到这里,Take your time and enjoy it
IO流(三)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。