[英]Jar can't access txt files
我對Java還是很陌生,並且遇到了無法找到解決方案的問題。 我編寫了一個程序,可以讀寫txt文件。 當我在NetBeans中運行它時,它似乎運行良好,但是當我嘗試運行JAR文件時,似乎該程序無法訪問txt文件。
我使用以下代碼創建了文件:
File data = new File("src/data.txt");
它無法工作的原因可能在於文件的創建嗎? 如果不是,那會是什么?
編輯:隨着程序的進展,文本文件正在被修改,如果使用輸入流,我將無法寫入或更改txt文件,是否應該更改管理數據的方式? (txt文件),或者jar是否有辦法繼續訪問Txt文件?
這個說法
File data = new File("src/data.txt");
依賴於文件系統中存在的文件。 您需要將文件作為資源讀取,以便JAR文件可以獨立於文本文件運行
InputStream input = getClass().getResourceAsStream("/path/to/data.txt");
編輯:
我建議使用將文本文件存儲為“默認”的策略,然后在需要更改時,在“ user.home”下寫入一個新文件。 在讀取任何數據之前,請檢查修改后的文件是否存在。
方法1:在創建jar和運行程序的位置,jar目錄下沒有名為“ src”的文件夾。 您應該在jar位置的同一目錄中創建一個名為“ src”的文件夾。 這將允許文件寫入操作。
方法2:如果要將txt文件保留在jar中,則可以使用:
InputStream in = this.getClass().getClassLoader()
.getResourceAsStream("your package path/data.txt");
一個完整的例子:
package com.file.loader;
public class Main {
public static void main(String[] args) throws IOException {
InputStream in = Main.class.getClassLoader().getResourceAsStream(
"com/file/loader/data.txt");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.