java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中
2014-08-03 10:35
1091 查看
/**
* File文件综合应用
* 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中。
*
* 思路:1.需要深度遍历。--递归
* 2.遍历的过程中过滤指定扩展名的文件--过滤器FileNameFilter,将文件存入容器中
* 3.将容器中的内容遍历,写入到指定文件中
*
*/
代码:
FilenameFilter 过滤器:
主程序:程序都有注释,请看程序
输出:在指定的目录下面创建目的文件:FileList.txt,里面存放:
E:\demodir\FileDir\Professional_32_2052.dat.bak
E:\demodir\FileDir\sgim_piccell.v1.bin.bak
E:\demodir\FileDir\sgim_picidx.v1.bin.bak
* File文件综合应用
* 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中。
*
* 思路:1.需要深度遍历。--递归
* 2.遍历的过程中过滤指定扩展名的文件--过滤器FileNameFilter,将文件存入容器中
* 3.将容器中的内容遍历,写入到指定文件中
*
*/
代码:
FilenameFilter 过滤器:
package com.lp.ecjtu.File.filter; import java.io.File; import java.io.FilenameFilter; public class FileterByJava implements FilenameFilter { private String SufixName;//传入过滤的名称 public FileterByJava(String SufixName){ this.SufixName = SufixName; } @Override public boolean accept(File dir, String name) { System.out.println("dir:"+dir+"_____"+"name:"+name); return name.endsWith(SufixName); } }
主程序:程序都有注释,请看程序
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中。 * * 思路:1.需要深度遍历。--递归 * 2.遍历的过程中过滤指定扩展名的文件--过滤器FileNameFilter,将文件存入容器中 * 3.将容器中的内容遍历,写入到指定文件中 * */ public class FileNameFileterWriteFile { /** * @param args */ public static void main(String[] args) { File dir = new File("E:\\demodir"); FilenameFilter fileter = new FileterByJava(".bak");//过滤.bak文件 List<File>fileList = new ArrayList<File>(); getFileList(dir,fileter,fileList); File desFile = new File(dir, "FileList.txt"); write2File(fileList, desFile); } /** * * @param dir 需要遍历的目录 * @param filter 过滤满足条件的文件 * @param fileList 存放符合条件的容器 */ public static void getFileList(File dir,FilenameFilter filter,List<File>fileList){ if(dir.exists()){ File[] files = dir.listFiles();//找到目录下面的所有文件 for(File file:files){ //递归 if(file.isDirectory()){ getFileList(file,filter,fileList); }else{ //对遍历的文件进行过滤,符合条件的放入List集合中 if(filter.accept(dir, file.getName())){ fileList.add(file); } } } } } /** * 将容器中的文件遍历,写入到目的文件中 * @param list 存放满足条件的文件的集合 * @param desFile 要写入的目的文件 */ public static void write2File(List<File>fileList,File desFile){ BufferedWriter bw = null; try { //使用字符流写入到目的文件中 bw = new BufferedWriter(new FileWriter(desFile)); //遍历List集合 for(File file:fileList){ bw.write(file.getAbsolutePath());//写入目的文件绝对路径 bw.newLine(); bw.flush(); } } catch (IOException e) { e.printStackTrace(); }finally{ try { if(bw != null){ bw.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
输出:在指定的目录下面创建目的文件:FileList.txt,里面存放:
E:\demodir\FileDir\Professional_32_2052.dat.bak
E:\demodir\FileDir\sgim_piccell.v1.bin.bak
E:\demodir\FileDir\sgim_picidx.v1.bin.bak
相关文章推荐
- Java基础知识强化之IO流笔记14:递归之输出指定目录下所有java文件绝对路径的案例
- java基础知识回顾之javaIO类--File类应用:删除带内容的目录
- java基础知识回顾之javaIO类--File类应用:递归深度遍历文件
- JAVA之File类-将指定目录下的所有java文件的绝对路径存储到文本文件中
- java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter
- 获取指定目录下指定扩展名文件的绝对路径,存储到文本文件中
- Jsoup学习笔记6之File类操作文件:获取指定目录下面,指定扩展名(.saz)的文件,并在对应的文件夹下生成同名的csv文件。
- JAVA基础 day22 File类的方法和应用 利用递归获取目录下的所有文件 Properties类的应用(和IO技术结合,存取配置文件) 打印流和合并流等功能类的学习应用 切割文件练习
- Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例(File类的文件过滤器方法改进list( FilenameFilter ff))
- java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter
- java基础之File对象中的FilenameFilter文件过滤以及递归列出指定文件夹路径下的所有文件和所有文件夹
- java获取指定目录下所有指定扩展名的文件
- java基础—File类——获取C盘下的隐藏目录文件名称
- JAVA 一个简单的文件写入代码(遍历文件夹获取所有文件、写入缓冲池、获取文件绝对路径、按后缀名过滤文件)
- Java I/O之FilenameFilter类列举出指定路径下某个扩展名的文件
- [bash] 打包某目录(可以是绝对路径)下的指定扩展名的文件
- Java基础之IO流,使用File类以树形结构打印指定文件目录
- Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例
- java文件过滤器(File类listFiles方法可选参数)--获取目录下指定的某类文件
- 【java编程】IO流之得到指定目录下.java文件的绝对路径