簡體   English   中英

Jar無法訪問txt文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM