Java自动读取指定文件夹下所有文件的方法

能够自动读取文件夹下的所有文件在处理或者读取数据的时候作用很大,要不然需要手动修改文件路径,非常麻烦。如果该文件夹下只有几个文件倒是还好,但是一旦文件的数量非常大的时候,将导致工作量非常大,而且还可能漏了某些文件。

接下来为大家讲解一下如何实现这个过程。

java代码:

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.util.ArrayList; 
 
 
public class readFile { 
  private static ArrayList<String> listname = new ArrayList<String>(); 
  public static void main(String[] args)throws Exception{ 
    readAllFile("data/"); 
    System.out.println(listname.size()); 
  } 
  public static void readAllFile(String filepath) { 
    File file= new File(filepath); 
    if(!file.isDirectory()){ 
      listname.add(file.getName()); 
    }else if(file.isDirectory()){ 
      System.out.println("文件"); 
      String[] filelist=file.list(); 
      for(int i = 0;i<filelist.length;i++){ 
        File readfile = new File(filepath); 
        if (!readfile.isDirectory()) { 
          listname.add(readfile.getName()); 
        } else if (readfile.isDirectory()) { 
          readAllFile(filepath + "\\" + filelist[i]);//递归 
        } 
      } 
    } 
    for(int i = 0;i<listname.size();i++){ 
      System.out.println(listname.get(i)); 
    } 
  } 
} 

涉及到的知识点:

1、File.isDirectory()

这个方法属于java.io包中的内容,用于检查表示此抽象路径名的文件是否是一个目录。以下是java.io.File.isDirectory()方法的声明。

public boolean isDirectory() 

当且仅当表示此抽象路径名的文件是一个目录该方法返回true,否则该方法返回false。

2、如何为list添加元素以及输出

例如:

ArrayList<String> list = new ArrayList<String>(); 
list.add("aaa"); 
list.add("bbb"); 
list.add("ccc"); 
for(int i =0 ; i < list.size(); i ++ ){ 
   system.out.println(list.get(i)); 
} 

3、递归函数

递归函数,通俗的说就是函数本身自己调用自己...
      如:n!=n(n-1)! 
     你定义函数f(n)=nf(n-1)
而f(n-1)又是这个定义的函数。这就是递归 ,递归的目的是简化程序设计,使程序易读。

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。