感言:以前读取目录文件都是事先知道文件是目录还是文件,比较有局限性,今天闲来没事搞了个递归读取,总体来说也很简单,代码如下。
package Decode; import java.io.*; public class RecursionRead { public static void main(String[] args) { try { //传入一个路径 readRecursion("D:\\tmp\\testdecode\\recursion"); } catch (IOException e) { e.printStackTrace(); } } public static void readRecursion(String directory) throws IOException { //首先对传入的路径进行判断这是文件还是目录,是文件的话就跳转到else直接读取。是目录的话就获取所有的路径再次传入readRecursion //就这样一直循环下去,其实还是很简单的。 File file = new File(directory); if (file.isDirectory()){ File[] fileArray= file.listFiles(); for (File f:fileArray){ readRecursion(f.getAbsolutePath()); } }else { System.out.println(file.getAbsolutePath()); InputStream inputStream = new FileInputStream(file); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } } } }