最近闲来无事,与同事小杨写了一个小的迷宫程序,里面包含了Swing,多线程,广度搜索算法,深度搜索算法等知识,为了今后使用方便,今天把JFileChooser的使用小结一下。
通常我们用JFileChooser来辅助完成文件的读写。
使用JFileChooser的步骤如下:
- 1.声明一个JFileChooser对象
- 2.为其添加文件过滤器,当然这个不是必须的。
- 3.调用了其showDialog方法后返回一个整型值,根据这个值可以判断用户的选择,如果用户没有选择“取消”,则接下来可以根据JFileChooser获取所选文件的基本信息,例如路径、文件名等等。
JFileChooser fileChooser = new JFileChooser();
//添加过滤的两种方法:
FileNameExtensionFilter ff = new FileNameExtensionFilter( null, "txt");
fileChooser.setFileFilter(ff);
//法二:
fileChooser.addChoosableFileFilter(new javax.swing.filechooser.FileFilter() {
@Override
public String getDescription() {
return "*.txt";
}
@Override
public boolean accept(File arg0) {
return arg0.getName().endsWith(".txt");
}
}
);
以上完成了基本设置,下面可以用这个来完成我们的要求
int option = fileChooser.showOpenDialog(null);
if(option == JFileChooser.APPROVE_OPTION){
//获取基本信息
System.out.println("路径:"+fileChooser.getSelectedFile().getPath());
System.out.println("绝对路径:"+fileChooser.getSelectedFile().getAbsolutePath());
System.out.println("文件名称:"+fileChooser.getSelectedFile().getName());
String path = fileChooser.getSelectedFile().getAbsolutePath();
//读入
FileReader fReader = new FileReader(path);
BufferedReader bReader = new BufferedReader(fReader);
ArrayList<String> data = new ArrayList<String>();
String row = null;
while((row = bReader.readLine()) !=null){
row = row.replaceAll("\\s*","");//去掉空格
data.add(row);
}
}