2013-05-19 33 views
1

我想處理多個文本文件(例如,比較2個文件)並將文件作爲參數傳遞給主函數。我怎麼做 ?如何從命令行傳遞多個文件參數?主函數的多個文件參數

import java.io.File; 
class MultiFileApp { 
    public static void main(String[] args) { 
     // Read file 1 
     // Read file 2 
     //Process File 1 & 2 
    } 
} 

回答

6
java YourApp file1.txt file2.txt 

這些串然後可以在main訪問作爲args[0] & args[1]

+3

是的,或者讓它載入某種形式的設置文件來保存文件名。 1+ –

+0

@Andrew在命令行中有沒有參數限制? – Shan

+4

我這麼認爲。它基本上取決於可以在該操作系統的命令行中輸入一行的時間。如果用戶需要輸入那麼多文件名,那將是一團糟。也許使用@HovercraftFullOfEels建議重新。一個名稱本身包含列表的文件。或者,查看以更通用的形式指定文件名。例如。 'file .txt'可能被認爲是'文件必須以'file'開始並以'.txt'結尾。然後,您可以在與這些條件匹配的代碼中創建一個文件過濾器。 –

1

您可以通過文件名(或者說絕對文件路徑)以Java作爲命令行參數

java MainFile file1.txt file2.txt 

裏面你的Java代碼,你可以用下面的代碼

public class SomeClass() { 
URL url = getClass().getResource(args[0]); 
File myFile = new File(url.getPath()); 
InputStream input = new FileInputStream(myFile); 
// ... 
} 

閱讀這些文件或

public class SomeClass() { 
InputStream input = getClass().getResourceAsStream(args[0]); 
// ... 
}