能夠自動讀取文件夾下的所有文件在處理或者讀取數據的時候作用很大,要不然需要手動修改文件路徑,非常麻煩。如果該文件夾下只有幾個文件倒是還好,但是一旦文件的數量非常大的時候,將導致工作量非常大,而且還可能漏了某些文件。
接下來為大家講解一下如何實現這個過程。
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)又是這個定義的函數。這就是遞歸,遞歸的目的是簡化程序設計,使程序易讀。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。