编写应用程序,界面如图8.8所示。当用户在第一个文本框内填入文件的路径后单击“打开文件”按钮,文件的内容显示在下面的文本区域内,在文本区域内对文件做出修改后,单击“存储文件”按钮,则可以将文件存入原来的文件名中。
代码
import java.applet.Applet;
import java.awt.Button;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
@SuppressWarnings("serial")
public class wenjiandemo extends Applet {
Label namel;
TextField nametf;
Button openbtn,savebtn;
TextArea saveta;
Panel p1,p2,p3,p4;
public void init()
{
namel=new Label("文件名");
nametf=new TextField(10);
openbtn=new Button("打开文件");
savebtn=new Button("存储文件");
saveta=new TextArea(15,15);
p1=new Panel();
p1.add(namel);
add(p1);
p2=new Panel();
p2.add(nametf);
add(p2);
p3=new Panel();
p3.add(openbtn);
p3.add(savebtn);
add(p3);
p4=new Panel();
p4.add(saveta);
add(p4);
savebtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
byte out[] ;
try {
String str1 = saveta.getText();//获取文件名
out=str1.getBytes();//转换字节存储缓冲区
FileOutputStream fout = new FileOutputStream(nametf.getText());
fout.write(out,0,out.length);//写数据
System.out.println(fout);
fout.flush();//清空流
fout.close();//记得关闭流
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
openbtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e1) {
// TODO Auto-generated method stub
String path = nametf.getText();
File ff = new File(path);
try {
saveta.setText("");//清空
byte buf[] = new byte[1024];//字节缓存区
FileInputStream fileIn = new FileInputStream(ff); //数据读流
int bytes = fileIn.read(buf,0,buf.length);//开始一个字节字节的读取数据
String inStr = new String(buf,0,bytes);//把字节转换成字符串
//输出文件内容
saveta.setText(inStr);//显示在文本域
} catch (Exception e11) {
// TODO: handle exception
}
}
});
}
}
布局不是很好看,仅供参考效果图