2013-05-26 70 views
0

如何將文件夾內的所有文件作爲輸入傳遞給函數?將文件夾內的所有文件作爲輸入傳遞給函數

讓我說我有一個名爲A的文件夾,在這個文件夾裏我有三個文件,分別爲1.txt,2.txt3.txt

另一方面,我有一個函數獲取文件名作爲輸入。我怎麼能說運行這個函數與文件夾A中的所有文件作爲您的輸入。

如果函數是

void readfile(String x) 

我想打電話給readfile("1.txt")readfile("2.txt")readfile("3.txt")

+1

你有沒有嘗試過自己? – WeMakeSoftware

+3

循環目錄中的文件。請參閱[「\ [java \] list directory」](http://stackoverflow.com/search?q=%5Bjava%5D+list+directory),以獲取許多相關問題/示例,例如[「通過目錄迭代的最佳方式在java?「](http://stackoverflow.com/questions/3154488/best-way-to-iterate-through-a-directory-in-java) – user2246674

回答

1

可以從目錄中獲取的所有文件如下

File mainFolder = new File("C:\\yourDir"); 
getFiles(mainFolder); 

public void getFiles(File f) 
{ 
    File files[]; 
    if(f.isFile()) 
    System.out.println(f.getAbsolutePath()); 
    else 
    { 
     files = f.listFiles(); 
     for (int i = 0; i < files.length; i++) 
     { 
     getFiles(files[i]); 
     } 
    } 
} 

這段代碼只是打印的文件。您可以將它存儲爲Set<String>,然後將其提供給您的功能。要從不同的文件讀取,您需要創建許多FileReader。 例如

BufferedReader reader1 = new BufferedReader(new FileReader(new File("file1.txt"))); 
BufferedReader reader2 = new BufferedReader(new FileReader(new File("file2.txt"))); 
BufferedReader reader2 = new BufferedReader(new FileReader(new File("file3.txt"))); 

如果你想從所有3個文件的每一行同時我suugest您創建了一個無限for循環,並檢查if(reader1.readLine()!=null)每個讀者。您可以break;當所有的所有讀者返回null。不要忘記關閉中的流最後阻止

reader1.close(); 
reader1.close(); 
reader1.close(); 
相關問題