用Java实现"打开"文件对话框和"保存"文件对话框,注意保存
时,空行不会保存。
案例如下:
package cn.unit12.file;
import java.awt.Button;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class File7 {
public static void main(String[] args) {
File7frm frm = new File7frm();
}
}
class File7frm extends Frame implements ActionListener{
FileDialog sv,op;
Button btn1,btn2,btn3;
TextArea tarea;
File7frm(){
super("打开和保存文件");
setLayout(null);
setBackground(Color.cyan);
setSize(600,300);
setVisible(true);
btn1 = new Button("打开");
btn2 = new Button("保存");
btn3 = new Button("退出");
tarea = new TextArea("");//创建文本区tarea
add(btn1); add(btn2); add(btn3); add(tarea);
tarea.setBounds(30, 50, 460, 220);
btn1.setBounds(520, 60, 50, 30);
btn2.setBounds(520, 120, 50, 30);
btn3.setBounds(520, 180, 50, 30);
//分别创建"打开"对话框和"保存"对话框
op = new FileDialog(this,"打开",FileDialog.LOAD);
sv = new FileDialog(this, "保存", FileDialog.SAVE);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
addWindowListener(
new WindowAdapter(){
public void WindowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btn1){
String str;
op.setVisible(true);
try{
File f1 = new File(op.getDirectory(),op.getFile());
FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);
tarea.setText("");//清空文本区
while((str=br.readLine())!=null){
tarea.append(str+'\n');
fr.close();
}
}catch(Exception e1){
}
}
if(e.getSource()==btn2){
sv.setVisible(true);
try{
File f1 = new File(sv.getDirectory(),sv.getFile());
FileWriter fw = new FileWriter(f1);
BufferedWriter bw = new BufferedWriter(fw);
String gt = tarea.getText();
bw.write(gt,0,gt.length());
bw.flush();
fw.close();
}catch(Exception e1){
}
}
if(e.getSource()==btn3){
System.exit(0);
}
}
}
效果如下:
可以看到,保存后,空行不见了。