在用到java进行文件的选择和保存时,我们可以利用java的JFileChooser。
首先是java选择加载本地文件
package com.file;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import com.file.WaveFileReader;
import com.tuxin.test;
public class fileselect {
public void select() {
//首先是创建JFileChooser 对象,里面带个参数,表示默认打开的目录,这里是默认打开当前文件所在的目录。
JFileChooser file = new JFileChooser (".");
//下面这句是去掉显示所有文件这个过滤器。
file.setAcceptAllFileFilterUsed(false);
//添加音频文件的过滤器
file.addChoosableFileFilter(new ExcelFileFilter("wav"));
int result = file.showOpenDialog(null);
//JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
if(result == JFileChooser.APPROVE_OPTION)
{
//获得你选择的文件绝对路径。并输出。
test ts=new test();
File filee=file.getSelectedFile();
String path = file.getSelectedFile().getAbsolutePath();
//String filename=file.getSelectedFile().getName();
ts.drawWaveFile(filee);
System.out.println(path);
}
else
{
System.out.println("你已取消并关闭了窗口!");
}
}
}
这时可以利用java代码来选择文件列表要显示的文件(如.doc .xls .txt)
package com.file;
import java.io.File;
import javax.swing.filechooser.FileFilter;
public class ExcelFileFilter extends FileFilter {
String ext;
//构造方法的参数是我们需要过滤的文件类型。比如excel文件就是 xls,exe文件是exe.
ExcelFileFilter(String ext) {
this.ext = ext;
}
@Override
public boolean accept(File arg0) {
// TODO Auto-generated method stub
if(arg0.getName().endsWith(".wav" )|| arg0.isDirectory())
return true;
return false;
}
@Override
public String getDescription() {
// TODO Auto-generated method stub
return "波形文件(.wav)";
}
}
接下来实现文件的保存
JFileChooser chooser=new JFileChooser();
FileNameExtensionFilter filter=new FileNameExtensionFilter("*.txt", "txt");
FileNameExtensionFilter filter1=new FileNameExtensionFilter("*.doc", "doc");
JFileChooser jFileChooser=new JFileChooser();
jFileChooser.setFileFilter(filter);
jFileChooser.setFileFilter(filter1);
int result=jFileChooser.showSaveDialog(null);
if (result==JFileChooser.APPROVE_OPTION)
{
File a=jFileChooser.getSelectedFile();
System.out.println(a.getPath());
if (!a.getName().endsWith(".txt"))
{
a=new File(a.getPath()+".txt");
System.out.println(a.getPath());
}
}