java gui文件操作:打开与保存
* 读取或保存为UTF-8文件不出现中文乱码
* 菜单的使用
*JTextarea 与JScrolPane结合使用,使长文档加入滚动条。
package com.wt010.file;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.Buffer;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/**
* @author konecms
* @date 2018年1月31日 下午3:18:49
*
*/
public class FileOpenAndSaveUtil extends JFrame implements ActionListener {
private JMenuItem mOpen,mSave,mExit;
private JTextArea ta;
public FileOpenAndSaveUtil() {
// TODO Auto-generated constructor stub
myframe();
}
public void myframe() {
setTitle("文件操作:打开及保存");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar mbar=new JMenuBar();
JMenu m=new JMenu("文件");
mOpen=new JMenuItem("打开");mOpen.addActionListener(this);
mSave=new JMenuItem("保存");mSave.addActionListener(this);
mExit=new JMenuItem("退出");mExit.addActionListener(this);
m.add(mOpen);
m.add(mSave);
m.add(mExit);
mbar.add(m);
getContentPane().add("North",mbar);
ta=new JTextArea();
JScrollPane sp=new JScrollPane(ta);
sp.setVisible(true);
getContentPane().add("Center",sp);
}
public static void main(String[] args) {
FileOpenAndSaveUtil util=new FileOpenAndSaveUtil();
util.setVisible(true);
util.setSize(300,500);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source=e.getSource();
if(source==mOpen) {
FileDialog openDia=new FileDialog(this,"aaa",FileDialog.LOAD);
openDia.setVisible(true);
String dirpath=openDia.getDirectory();
String filename=openDia.getFile();
if(dirpath==null||filename==null) {
return;
}
File file=new File(dirpath,filename);
try {
ta.setText(null);
InputStreamReader read = new InputStreamReader(new FileInputStream(file),"UTF-8");
BufferedReader reader=new BufferedReader(read);
String line;
while((line=reader.readLine()) != null) {
ta.append(line+"\r\n");
}
reader.close();
}catch(FileNotFoundException e1) {
e1.printStackTrace();
}catch(IOException e1) {
e1.printStackTrace();
}
}//openDia
if(source==mSave) {
FileDialog saveDia=new FileDialog(this,"保存",FileDialog.SAVE);
saveDia.setVisible(true);
String filename=saveDia.getFile();
String dirpath=saveDia.getDirectory();
if(filename==null||dirpath==null) {
return;
}
try {
File file=new File(dirpath,filename);
OutputStreamWriter write=new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
BufferedWriter writer=new BufferedWriter(write);
writer.write(ta.getText());
writer.close();
}catch(IOException e1) {
e1.printStackTrace();
}
}
if(source==mExit) {
System.exit(0);
}
}
}