下面我将介绍Java-swing中如何使用JFileChooser来保存文件
我们的最终成品如图:
一、原始版:
最简单的JFileChooser使用方式
public void saveFile() {
//弹出文件选择框
JFileChooser chooser = new JFileChooser();
//下面的方法将阻塞,直到【用户按下保存按钮且“文件名”文本框不为空】或【用户按下取消按钮】
int option = chooser.showSaveDialog(null);
if(option==JFileChooser.APPROVE_OPTION){ //假如用户选择了保存
File file = chooser.getSelectedFile();
try {
FileOutputStream fos = new FileOutputStream(file);
//写文件操作……
fos.close();
} catch (IOException e) {
System.err.println("IO异常");
e.printStackTrace();
}
}
}
二、升级版:
在原始版的基础上增加了后缀名过滤器,并增加能给用户手动输入的文件名自动添加后缀的功能
public void saveFile() {
//弹出文件选择框
JFileChooser chooser = new JFileChooser();
//后缀名过滤器
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"通讯录文件(*.con)", "con");
chooser.setFileFilter(filter);
//下面的方法将阻塞,直到【用户按下保存按钮且“文件名”文本框不为空】或【用户按下取消按钮】
int option = chooser.showSaveDialog(null);
if(option==JFileChooser.APPROVE_OPTION){ //假如用户选择了保存
File file = chooser.getSelectedFile();
String fname = chooser.getName(file); //从文件名输入框中获取文件名
//假如用户填写的文件名不带我们制定的后缀名,那么我们给它添上后缀
if(fname.indexOf(".con")==-1){
file=new File(chooser.getCurrentDirectory(),fname+".con");
System.out.println("renamed");
System.out.println(file.getName());
}
try {
FileOutputStream fos = new FileOutputStream(file);
//写文件操作……
fos.close();
} catch (IOException e) {
System.err.println("IO异常");
e.printStackTrace();
}
}
}