1 import java.awt.event.ActionEvent;
2 import java.awt.event.ActionListener;
3 import javax.swing.*;
4 import java.awt.*;
5 import java.awt.event.*;
6 import java.io.*;
7
8 class Ex_9_2 extends JFrame implements ActionListener {
9 JTextArea tArea;
10 JButton btSave ;
11 JButton btOpen ;
12 JScrollPane scrollPaneWithTextArea ;
13 JFileChooser fileChooser ;
14 FileFilter fileFilter; //文件匹配
15 JDialog dialog;
16 File file;
17 //FileOutputStream fos;
18 //FileInputStream fis;
19 FileReader fis;
20 FileWriter fos;
21 BufferedReader bfr;
22
23 static int frameW = 500;
24 static int frameH = 500;
25
26 Ex_9_2(){
27 setSize(frameW,frameH);
28 setTitle("文件保存Test");
29 tArea = new JTextArea();
30 btSave = new JButton("保存");
31 btOpen = new JButton("打开");
32 scrollPaneWithTextArea = new JScrollPane(tArea) ; //文本区加入滚动条面板
33 fileChooser = new JFileChooser("D:\\Workspaces\\java\\TestMySelf"); //设定默认文件选择路径
34 setLayout(null);
35 scrollPaneWithTextArea.setBounds(0,0,485,300);
36 this.add(scrollPaneWithTextArea);
37 btOpen.setBounds(50,330,60,30);
38 btSave.setBounds(350,330,60,30);
39 this.add(btSave); this.add(btOpen);
40 btSave.addActionListener(this);
41 btOpen.addActionListener(this);
42
43 addWindowListener(new WindowAdapter(){
44 public void windowClosing(WindowEvent e){
45 System.exit(0);
46 }
47 });
48 }
49 @Override
50 public void actionPerformed(ActionEvent arg0) {
51 // TODO Auto-generated method stub
52 int fileChooserReturn;
53
54 //实现打开按钮功能
55 if (arg0.getSource() == btOpen){
56 fileChooser.setDialogTitle("打开文件");
57 fileChooserReturn = fileChooser.showOpenDialog(this); //打开文件选择对话框,并返回点击的按钮值
58 if (fileChooserReturn == JFileChooser.APPROVE_OPTION){ // 按下了“打开\保存”按钮
59 file = fileChooser.getSelectedFile();
60 //tArea.setText("选择的文件名是:" + file.getPath());
61 try{
62 fis = new FileReader(file);
63 bfr = new BufferedReader(fis);
64 }catch(FileNotFoundException fnfe){
65 JOptionPane.showMessageDialog(this, "文件没有找到!");
66 return;
67 }
68 try{
69 //读入数据
70 String str="";
71 while( (str = bfr.readLine()) != null){
72 tArea.append(str);
73 }
74 fis.close();
75 JOptionPane.showMessageDialog(this, "打开成功!");
76
77 }catch(IOException ioe){
78 JOptionPane.showMessageDialog(this, "打开失败!");
79 return ;
80 }
81 }
82 }
83
84 //实现保存按钮功能
85 else if (arg0.getSource() == btSave){
86 fileChooser.setDialogTitle("保存文件");
87 fileChooserReturn = fileChooser.showSaveDialog(this); //保存文件选择对话框,并返回点击的按钮值
88 if (fileChooserReturn == JFileChooser.APPROVE_OPTION){ // 按下了“打开\保存”按钮
89 file = fileChooser.getSelectedFile();
90 //tArea.setText("选择的文件名是:" + file.getPath());
91 if (file.exists()){
92 int yesOrNo;
93 yesOrNo = JOptionPane.showConfirmDialog(this, "文件已经存在!是否保存?");
94 if (yesOrNo == JOptionPane.YES_OPTION){
95 try{
96 fos = new FileWriter(file);
97 }catch(IOException fnfe){
98 tArea.setText("没有找到文件\n" + fnfe.getMessage());
99 return ;
100 }
101 try{
102 //写入文件
103 fos.write(tArea.getText());
104 fos.close();
105 JOptionPane.showMessageDialog(this, "保存成功!");
106 }catch(IOException ioe){
107 JOptionPane.showMessageDialog(this, "保存失败!");
108 tArea.setText("文件保存失败\n"+ioe.getMessage());
109 return ;
110 }
111 }else {
112 JOptionPane.showMessageDialog(this, "已存在的文件,未保存!");
113 }
114 }
115 else{
116 try{
117 fos = new FileWriter(file);
118 }catch(IOException fnfe){
119 tArea.setText("没有找到文件\n" + fnfe.getMessage());
120 return ;
121 }
122 try{
123 //写入文件
124 fos.write(tArea.getText());
125 fos.close();
126 JOptionPane.showMessageDialog(this, "保存成功!");
127 }catch(IOException ioe){
128 JOptionPane.showMessageDialog(this, "保存失败!");
129 tArea.setText("文件保存失败\n"+ioe.getMessage());
130 return ;
131 }
132 }
133 }
134 }
135 }
136
137 }