递归方法,实现查找目录中以.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. jquery点击页面其他位置隐藏div

    $("#btnAdd").on('click', function (e) { $("#setUp").toggle(); $(document).one('c ...

  2. python中多线程,多进程,多协程概念及编程上的应用

    1, 多线程 线程是进程的一个实体,是CPU进行调度的最小单位,他是比进程更小能独立运行的基本单位. 线程基本不拥有系统资源,只占用一点运行中的资源(如程序计数器,一组寄存器和栈),但是它可以与同属于 ...

  3. tf.nn.conv2d()需要搞清楚的几个变量。

    惯例先展示函数: tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) 除去name参数用以指 ...

  4. python3字典:获取json响应值来进行断言的用法详解

    在Python中我们做接口经常用到一些json的返回值我们常把他转化为字典,在前面的python数据类型详解(全面)中已经谈到对字典的的一些操作,今天我们就获取json返回值之后,然后转化为字典后的获 ...

  5. python接口自动化2-发送post请求详解(二)

    前言 发送post的请求参考例子很简单,实际遇到的情况却是很复杂的,首先第一个post请求肯定是登录了,但登录是最难处理的.登录问题解决了,后面都简单了. 一.查看官方文档 1.学习一个新的模块,其实 ...

  6. linux互传文件nc命令

    使用nc命令可以很快的在两台主机传递文件,且不需要在同一网段,只要设置好端口即可. 一.安装(CentOS下) yum install -y nc  (需要root权限,可以用加上sudo) 二.使用 ...

  7. FlowPortal-BPM——数据库交互:创建新接口(类库)—将数据提交给其他程序使用

    使用到的是“流程设计”→“自定义插件” 一.创建新类库 (1)新建类库→引用文件 (2)新建ado.net数据访问类(要操作的数据库) (3)右键类库名称→属性→生成→输出→路径:安装目录下UserD ...

  8. windows任务管理器所查的网站

    添加menu   https://blog.csdn.net/u012273127/article/details/71293088 点击菜单打开对话框  https://blog.csdn.net/ ...

  9. Objective-C语法之类和对象

    https://blog.csdn.net/totogo2010/article/details/7708731 Objective-C语法之类和对象 2012年07月02日 17:19:42 知行合 ...

  10. jsp页面用struts2标签展示List<Object>类型的数据

    今天遇到一个问题,一个List<Object>类型的数据,是直接从sql查出来的数据,要在前端展示,原来的方法不知道为什么不能展示,后来找了好久,找到了一个靠谱的方法,记录一下 <s ...