2
我有一個程序使用名爲list.txt的文件來填充ArrayList及其內容,然後獲取一個隨機行。Java:訪問與.jar位於同一目錄中的文件
下面是加載文件的一部分:
public class ReadList {
private Scanner f;
public void openFile(){
try{
f = new Scanner(new File("list.txt"));
}catch(Exception e){
System.out.println("File not found!");
}
}
然而,從一個.jar文件運行時,它不工作。我把txt放在同一個目錄下並使用f = new Scanner(new File("./list.txt"));
,但它沒有工作。我也嘗試了一些我在網上找到的東西,但是我所能做的只是:a)獲得包含.jar的.jar的完整路徑(/home/user/java/program.jar),以及b)獲取完整路徑(/ home/user/java)目錄的路徑,這是一個問題,因爲我希望這個程序可以在Windows和Linux上運行,所以我不能簡單地這樣做(「/ home/user/java「+」/list.txt「),因爲Windows在路徑中使用反斜槓。
那麼無論文件處於哪個目錄,只要與.jar位於同一個位置,只需定位特定文件(通常稱爲list.txt)的簡單方法是什麼?
檢查「user.dir」系統屬性 – Multisync 2014-11-03 19:43:30
還有一個可用於File類的路徑分隔符屬性,因此您可以使其與平臺無關(即/或\或您所使用的任何平臺)。 – Duston 2014-11-03 19:47:04