递归方法,实现查找目录中以.java为后缀的文件路径,并存入文本文件中

定义一个静态方法fileToLine(),传入参数:File对象目录,List集合对象(List<File> 这样做的目的是因为这个方法会被递归,因此不能在内部创建,并且List集合是引用传递)

调用File对象的listFiles()方法,获取目录数组File[] files

循环这个数组for(File file : files),循环中

判断是否是目录file.isDirectory为真,进行递归fileToLine(file,list)

不是目录,判断后缀为”.java”文件,加入List集合

数据的持久化

定义一个函数writeToFile(),传递参数:List<File> 集合,String的文件名

定义一个BufferedWriter对象,new出来,构造参数:FileWriter对象,

for循环List<File>集合,循环中

调用File对象的getAbsolutePath()方法,得到String的文件绝对路径

调用BufferedWriter对象的write()方法,写入缓存,参数:String路径

调用BufferedWriter对象的newLine()方法,写入一个换行

调用BufferedWriter对象的flush()方法,刷新缓存

注意异常的捕获,关闭缓存

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List; public class IOTest { /**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
File dir = new File("E:/");
List<File> result = new ArrayList<File>();
fileToLine(dir, result);
//System.out.println(result);
writeToFile(result,"E:/log.txt");
} /**
* 递归查找文件
*
* @param dir
* @param result
*/
public static void fileToLine(File dir, List<File> result) {
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
// 递归目录
fileToLine(file, result);
} else {
// 判断后缀,这里可以加入其他判断
if (file.getName().endsWith(".java")) {
result.add(file);
}
}
}
}
}
/**
* 持久化数据
* @param files
* @param logName
* @throws Exception
*/
public static void writeToFile(List<File> files,String logName) throws Exception{
BufferedWriter bw=new BufferedWriter(new FileWriter(logName));
for(File file:files){
String filePath=file.getAbsolutePath();
bw.write(filePath);
bw.newLine();
bw.flush();
}
bw.close();
}
}

加入行号,2万6000行数据,几秒的时间就能找到

[javaSE] IO流(递归查找指定文件)的更多相关文章

  1. IO流——File类(文件流类)

    java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...

  2. Java查找指定文件中指定字符的个数

    package lwl.youweb2.test; import java.io.BufferedReader; import java.io.FileReader; import java.io.I ...

  3. IO流的应用_Copy文件

    IO流的应用_Copy文件 (1) import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  4. 在eclipse中查找指定文件 [多种方法]

    在eclipse中查找指定文件   1.ctrl+h打开搜索界面 File Search: containing text填*,File name patterns填写hello.*,可以找到hell ...

  5. python实现在目录中查找指定文件的方法

    python实现在目录中查找指定文件的方法 本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 代码如下: import os from ...

  6. io流(io流的引入与文件字节流)

    io流的引入与文件字节流 io流:就是一根吸管,插入后,可以操作目标文件 io流的分类: 按方向:输入,输出 按大小:字节,字符 按处理方式: 处理流:"管套着管" --- 流结合 ...

  7. IO流-递归遍历目录下指定后缀名结尾的文件名称

    /* *自定义遍历目录下指定后缀名结尾文件的名称的方法: * * param file:指定目录 name:指定后缀名 */ 1 public static void FileName(File fi ...

  8. IO流——递归(输出所有文件)

    package pers.zbb.File; import java.io.File; public class FileDemo { public static void main(String[] ...

  9. JavaSE | IO流

    java.io.File类(文件和目录路径名的抽象表示形式) 如果希望在程序中操作文件和目录都可以通过File类来完成,File类能新建.删除.重命名文件和目录. File类是文件或目录的路径,而不是 ...

随机推荐

  1. tcp udp socket编程

    http://blog.csdn.net/ns_code/article/details/14128987

  2. C# winform中listview排序

    本文解决方案是采用下面链接中的解决方案.十分感谢这篇文章的作者bright:http://blog.163.com/shensc@126/blog/static/1312896522010614103 ...

  3. ClamAV学习【7】——病毒库文件格式学习

    搜查到一份详细的ClamAV病毒文件格式资料(http://download.csdn.net/detail/betabin/4215909),英文版,国内这资料不多的感觉. 重点看了下有关PE的病毒 ...

  4. jdk动态代理 案例

    import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflec ...

  5. CCF CSP 201803-1 跳一跳

    题目链接:http://118.190.20.162/view.page?gpid=T73 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下:玩家每次从当前方块跳 ...

  6. bzoj1047理想的正方形

    题目链接 纪念又双叒叕的一道暴力碾标算的题 我们考虑纯暴力 #include<iostream> #include<cstdio> #include<algorithm& ...

  7. 源码编译安装MySQL-5.6/mysql-5.6.39------踩了无数坑,重装了十几次服务器才会的,不容易啊!

    1.切换到src目录 cd /usr/local/src/ 2. 下载mysql免编译二进制包 免编译的mysql二进制包5.6源码包: wget http://mirrors.163.com/mys ...

  8. Instant low voltage or power off to make computer power burn down

    严重则可造成硬盘直接报废! 原理:瞬间低压或者断电,滤波电容上存储的电能已经被使用,此时再瞬间供电则会重新对电容充电,而限流电阻还没有恢复到保护状态,于是会产生很大的冲击电流,从而导致了全桥元件或保险 ...

  9. 【bug】—— IE8 ajax 报错:no transport

    如题,我使用$.ajax()方法请求数据,在现代浏览器中工作正常,但在 IE 8 下,会有报错:no transport 从 stackoverflow 中获知,出现这个问题是因为** IE 8 不支 ...

  10. Codeforces Global Round 2 部分题解

    F.Niyaz and Small Degrees 挺sb的一题,为什么比赛时只过了4个呢 考虑当\(x\)固定的时候怎么做.显然可以树形DP:设\(f_{u,i=0/1}\)表示只考虑\(u\)子树 ...