java递归读取目录下所有文件的方法,java递归读取目录

我有两个文件:AddThread.java进行加法操作。Core.java是主线程文件。得到的结果sum=10.可是我觉得应该得到20才对呀。

java递归读取目录下所有文件的方法,java递归读取目录

java递归读取目录下的所有文件(包含子目录下的所有文件)大概思路如下:通过file.listFiles()方法获取目录下的所有文件(包含子目录下的所有文件),得到files[]欧洲杯竞猜平台 ,数组,然后遍历得到的所有文件,通过isFile(文件)和isDirectory(文件夹)方法来判断读取的是文件还是文件夹,如果得到的是文件夹,就递归调用test()方法,如果得到的是文件,就将其加入fileList中,最后测试的时候遍历fileList下的所有文件,来验证读取数据的准确性。

package com.chaoyue.io.test; 

import java.io.File; 
import java.util.ArrayList; 
import java.util.List; 

/** 
 * 递归读取某个目录下的所有文件 
 * 
 * @author 超越 
 * @Date 2016年12月5日,下午4:04:59 
 * @motto 人在一起叫聚会,心在一起叫团队 
 * @Version 1.0 
 */ 
public class ReadFile { 
  private static void test(String fileDir) { 
    List<File> fileList = new ArrayList<File>(); 
    File file = new File(fileDir); 
    File[] files = file.listFiles();// 获取目录下的所有文件或文件夹 
    if (files == null) {// 如果目录为空,直接退出 
      return; 
    } 
    // 遍历,目录下的所有文件 
    for (File f : files) { 
      if (f.isFile()) { 
        fileList.add(f); 
      } else if (f.isDirectory()) { 
        System.out.println(f.getAbsolutePath()); 
        test(f.getAbsolutePath()); 
      } 
    } 
    for (File f1 : fileList) { 
      System.out.println(f1.getName()); 
    } 
  } 

  public static void main(String[] args) { 
    test("F:/apache-tomcat-7.0.57-windows-x64"); 
  } 
} 

本地目录下的文件结构如下

欧洲杯竞猜平台 1

测试读取目录下的文件如下

欧洲杯竞猜平台 2

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持帮客之家。

java递归读取目录下的所有文件(包含子目录下的所有文件)大概思路如下:通过file.l…

packageThreads;publicclassAddThreadimplementsRunnable{privatevolatilestaticintsum=0;publicAddThread(){}publicvoidrun(){{for(inti=0;i10;++i){inttemp=sum;temp=temp+1;try{Thread.sleep(20);}catch(InterruptedExceptione){System.out.println(e);}sum=temp;System.out.println("Thissumis"+sum);}}}publicstaticintgetSum(){returnsum;}}

packageThreads;publicclassCore{publicstaticvoidmain(String[]args){AddThreadfirst=newAddThread();AddThreadsecond=newAddThread();Threadone=newThread(first);Threadtwo=newThread(second);one.setName("firstThread");two.setName("secondThread");one.start();two.start();while(one.isAlive()||two.isAlive()){}System.out.println(AddThread.getSum());}}

相关文章