用java Swing实现读写文件的操作
开发平台:eclipse
参考:https://blog.csdn.net/stormdony/article/details/79497030
1.File->new->Project
选择General->"Project"或者WindowBuilder->SWT Designer->"SWT/JFace Java Project",点击next
2.Ctrl+N 新建类
选择WindowBuilder->Swing Designer->"Application Window"或"JFrame",点击next
3.页面布局
进入设计界面
3.1 使用GroupLayout管理页面布局
java Swing窗体有默认布局,我们需要使用GroupLayout,不受默认布局的约束,在Palette栏Layouts选框下选择GroupLayout,拖动到窗体上
3.2 使用JScrollPane控件为文本区添加滚动条
Palette栏Containers选框下选择JScrollPane,拖动到窗体上,改变大小为文本域显示大小
3.3 选择JTextArea放入JScrollPane
3.4 选择JLable,JTextField,JTextArea,JButton等控件部署在界面上
JTextFeild和JTextArea的区别:
JTextArea,可以在里面输入多行文字
JTextField ,只能在里面输入一行文字,也就是单行文本框,JTextField回车会触发ActionEvent事件
双击界面按钮,编写按钮点击事件代码
定义数据成员:
private File openFile; //文件类
private FileInputStream fileInputStream; //字节文件输入流
private FileOutputStream fileOutputStream; //字节文件输出流
private OutputStreamWriter outputStreamWriter; //字符文件输出流
1.Browse浏览系统文件代码:
JButton btnBrowse = new JButton("Browse"); //自动生成
btnBrowse.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//自己撰写
JFileChooser chooser = new JFileChooser(); //文件选择
chooser.showOpenDialog(chooser); //打开文件选择窗
openFile = chooser.getSelectedFile(); //获取选择的文件
textPath.setText(openFile.getPath()); //获取选择文件的路径
}
});
2.read读取代码
JButton btnRead = new JButton("Read"); //系统自动生成
btnRead.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//自己撰写
openFile = new File(textPath.getText());
try {
if(!openFile.exists()){ //如果文件不存在
openFile.createNewFile();//创建文件
}
fileInputStream = new FileInputStream(openFile); //创建文件输入流
byte b[] = new byte[(int) openFile.length()]; //定义文件大小的字节数据
fileInputStream.read(b); //将文件数据存储在b数组
content = new String(b,"UTF-8"); //将字节数据转换为UTF-8编码的字符串
textArea.setText(content); //文本区显示文件内容
fileInputStream.close(); //关闭文件输入流
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
3.Save保存文件
JButton btnSave = new JButton("Save"); //自动生成
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//自己撰写
openFile = new File(textPath.getText());
try {
fileOutputStream = new FileOutputStream(openFile);
outputStreamWriter = new OutputStreamWriter(fileOutputStream,"utf-8");
content = textArea.getText();
outputStreamWriter.write(content);
outputStreamWriter.flush(); //清空缓存
outputStreamWriter.close(); //关闭文件字符输出流
fileOutputStream.close(); //关闭文件字节输出流
} catch (Exception e1) {
e1.printStackTrace();
}
}
4.退出系统
在Exit按钮点击响应事件代码里加入:
System.exit(0);