从jar运行项目时,如何读取项目中的文本文件?

时间:2016-04-12 09:43:56

标签: java file

  • 我正在研究Netbeans中的Java程序,我希望能够这样做 从外部jar文件运行
  • 我似乎无法从不在其中的文件中读取 项目默认目录或位于那里的一些子文件夹,和 只适用于Net beans。
  • 我希望能够从文件中读取文本文件 路径
  

src/assets/files/textFile.txt

我已经尝试了所有的建议here,但它们似乎对我不起作用。这是我目前使用的代码:

File file = new File("assets/files/textFile.txt");
if (!file.exists()) {
    throw new FileNotFoundException("File does not exist");
}
FileReader fr = new FileReader(file.getAbsoluteFile());
BufferedReader br = new BufferedReader(fr);

当我尝试运行它时,每次都抛出异常。

1 个答案:

答案 0 :(得分:0)

此类非文件的术语是资源

String encoding = "UTF-8";
new BufferedReader(
    new InputStreamReader(YourClass.getResourceAsStream("/assets/files/textFile.txt"),
        encoding));

FileReader也是一个使用默认系统编码的旧实用程序类。这可能与创建文本文件的位置不同,因此Unicode(例如以UTF-8编码)将是理想的。对于Windows用户,您可以在开头编写BOM字符,将文件标记为UTF-8:"\ufeff"

类YourClass应该来自jar。这里使用绝对路径" /..."。相对路径将从包路径开始。

Windows也不区分大小写。其他系统和jar的zip格式区分大小写。使用zip实用程序检查jar以获取正确的路径。

相关问题