《文件操作——Java第十五周》
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《文件操作——Java第十五周》
* 作 者: 刘江波
* 完成日期: 2012 年 12 月 6 日
* 版 本 号: v2.2
* 对任务及求解方法的描述部分
* 问题描述:
编写一个真正能够打开文件和保存文件的应用程序。打开文件后可能对该文本文件进行编辑,并可以改变保存路径和文件名,最后编写 一个程序执行入口进行测试。
* 程序头部的注释结束
*/
package week15;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;public class FileWindowsTest {public static void main(String[] args) {// TODO Auto-generated method stubFileWindows win = new FileWindows();}}class FileWindows extends JFrame implements ActionListener {JFileChooser filedialog_save,filedialog_load;//声明两个文件对话框JMenuBar menubar;JMenu menu;JMenuItem itemOpen,itemSave;JTextArea text;BufferedReader in;FileReader file_reader;BufferedWriter out;FileWriter tofile;FileWindows(){super("带文件对话框的窗口");setBounds(300,200,260,270);setVisible(true);menubar = new JMenuBar();menu = new JMenu("文件");itemOpen = new JMenuItem("打开文件");itemSave = new JMenuItem("保存文件");itemOpen.addActionListener(this);itemSave.addActionListener(this);menu.add(itemOpen);menu.add(itemSave);menubar.add(menu);setJMenuBar(menubar);filedialog_save = new JFileChooser();filedialog_load = new JFileChooser();text =new JTextArea(10,10);add(text,BorderLayout.CENTER);}public void actionPerformed(ActionEvent e){if(e.getSource() == itemOpen){filedialog_load.setVisible(true);text.setText(null);String s;int state = filedialog_load.showOpenDialog(null);File file = filedialog_load.getSelectedFile();//当选择的要打开的文件不为空,并且点击了批准按钮才能进行打开操作if(file != null && state == JFileChooser.APPROVE_OPTION){try{file_reader = new FileReader(file);in = new BufferedReader(file_reader);while((s = in.readLine()) != null)text.append(s+'\n');in.close();file_reader.close();}catch(IOException e2) {}}}else if(e.getSource() == itemSave){filedialog_save.setVisible(true);int state = filedialog_save.showSaveDialog(null);File file = filedialog_save.getSelectedFile();if(text.getText().equals(null) && state == JFileChooser.APPROVE_OPTION){try{tofile = new FileWriter(file);out = new BufferedWriter(tofile);out.write(text.getText(), 0, (text.getText()).length());out.close();tofile.close();}catch(IOException e2) {}}}}}