我創建了一個簡單的Java程序,在該程序中創建一個文本文件並讀取寫入其中的數據。問題是我不想硬編碼文件的路徑,因爲在開發應用程序後,我爲我的程序創建了一個安裝程序包,允許用戶在那裏安裝系統。現在問題是最終用戶可以在任何地方安裝文件(即在C,D或E驅動器中),並且在這種情況下,我得到FileNotFoundException異常。從Java程序中刪除硬編碼的文件路徑
我的代碼 - 這是我用來創建和寫入文本文件到文本文件的代碼。
FileWriter file = new FileWriter("E:\\TextFile.txt",true);
BufferedWriter writer = new BufferedWriter(file);
writer.write(input);
write.newLine();
write.close();
這是我用來從文本文件中讀取文本的代碼。
FileReader read = new FileReader("E:\\TextFile.txt");
BufferedReader data = new BufferedReader(read);
我有一個文件,我硬編碼的文件的路徑。
System.setProperty("webdriver.chrome.driver","D:\\New Folder\\chromedriver.exe");
正如你可以在我的代碼看,我硬編碼的路徑( 「E:\ TextFile.txt的」, 「E:\ TextFile.txt的」 和 「d:\新建文件夾\ chromedriver.exe」) 。 有什麼辦法在Java中刪除它們。 我經歷了類似的問題,但無法弄清楚如何檢測文件的位置。
Youjust編輯源代碼文件 - 你是什麼意思刪除它們? – Mark 2014-10-17 16:20:17
您要求將它們從編譯後的代碼中移除?或者詢問如何編輯源代碼來糾正它?您無法從編譯後的代碼中真正刪除引用...您需要在源代碼中修復它並重新編譯+打包您的應用程序 – user3062946 2014-10-17 16:20:52
@Mark例如,代碼包含的路徑爲「E:\\ TextFile.txt」 。正如你所看到的,該文件在E驅動器中,但是當用戶安裝該文件時,他可以將其安裝在D驅動器中。在這種情況下,程序將拋出FileNotFoundException異常。所以我想找到一種方式,我可以告訴應用程序用戶已經在這個位置安裝了應用程序,並且可以從那裏讀取它。 – 2014-10-17 16:23:55