我有幾個.dat文件,我的程序讀取輸入和輸出。它們存儲在項目文件夾中。我將如何讀寫這些文件,路徑是什麼?我希望能夠壓縮項目並將其發送給其他人使用,所以我無法硬編碼路徑,因爲其他人可能不會將其放置在相同路徑中有沒有辦法在不需要硬編碼路徑的情況下讀取我們項目中的文件?
現在我正在使用掃描儀和文件類:
String input= "E:\\CProj01\\input.dat";
Scanner scannerInput = new Scanner(new File(input));
我有幾個.dat文件,我的程序讀取輸入和輸出。它們存儲在項目文件夾中。我將如何讀寫這些文件,路徑是什麼?我希望能夠壓縮項目並將其發送給其他人使用,所以我無法硬編碼路徑,因爲其他人可能不會將其放置在相同路徑中有沒有辦法在不需要硬編碼路徑的情況下讀取我們項目中的文件?
現在我正在使用掃描儀和文件類:
String input= "E:\\CProj01\\input.dat";
Scanner scannerInput = new Scanner(new File(input));
是的!您可以使用ClassLoader
如果你把位於項目的目錄中的相對位置的文件,你可以這樣做:
getClass().getClassLoader().getResourceAsStream("relative file path here")
然後你就可以使用返回InputStream
對象解析文件。
的ClassLoader
可以讓你保持你的一切相對於項目的根文件,所以如果你已經組織了像這樣的文件:
src_
|___files_
| -'yourfile.dat'
| -'anotherfile.dat'
|___java_
引用yourfile.data
與files/yourfile.dat
的String
爭論就會讓你的文件作爲流,無論包的部署/下載/移動到哪裏。
是的,如果你發送它,他們可以使用,編輯,那麼你可以創建一個文件夾resources
,你可以簡單地得到像
String input= "src/resources/input.dat";
Scanner scannerInput = new Scanner(new File(input));
你可以嘗試一個JFileChooser的文件路徑Java項目。
https://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html