/* (程序头部注释开始)
* 程序的版权和版本声明部分
* 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 stub
FileWindows 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) {}
}
}
}
}