Java 如何在我的jar中获取.txt文件?

Java 如何在我的jar中获取.txt文件?,java,jar,embedded-resource,filepath,getresource,Java,Jar,Embedded Resource,Filepath,Getresource,我想说我搜索了很多,甚至谷歌和stackoverflow。有很多关于这个的话题,但我没有找到我真正需要的 我的问题是: 我想定义我自己的包文件夹中的文件。文件的格式是.txt。 文件位于xxx\src\xxxx\myTXTFile.txt 我编写以下代码以访问我的txt: File f = new File(xxx.class.getResource("pr.txt").getFile()); 当我在netbeans上运行此代码时,是的,它可以工作。但当我编译并单击.jar文件时,它会报告

我想说我搜索了很多,甚至谷歌和stackoverflow。有很多关于这个的话题,但我没有找到我真正需要的

我的问题是:

我想定义我自己的包文件夹中的文件。文件的格式是.txt。 文件位于
xxx\src\xxxx\myTXTFile.txt
我编写以下代码以访问我的txt:

  File f = new File(xxx.class.getResource("pr.txt").getFile());
当我在netbeans上运行此代码时,是的,它可以工作。但当我编译并单击.jar文件时,它会报告:

File not found 

我能做什么

您可以使用以下代码访问txt文件:

File f = new File("xxxx/myTXTFile.txt");
或者必须将TXT文件保存在临时文件夹中:

        InputStream is = getClass().getClassLoader().getResourceAsStream("xxxx/myTXTFile.txt");
        OutputStream os = new FileOutputStream(new File("/tmp/tempTXTFile.txt"));

        while ((i = is.read(buffer)) != -1)
        {
            output.write(buffer, 0, i);
        }

        output.close();

        is.close();

        File f = new File("/tmp/tempTXTFile.txt");

在IDE中,文件仍然位于zip格式jar之外。因此被发现。对于jar中的文件,请使用:

OutputStream f = xxx.class.getResourceAsStream("pr.txt");

文件不起作用。

您确定jar文件中有这些文件吗?检查jar文件,确保文件在那里对不起,我不明白是什么意思?我的类文件夹中的txt文件。src/xxx/inhereClicking“jar”生成一个jar文件,它基本上是一个zip文件。找出这个文件的位置,解压缩它,然后查找你的.txt文件。如果没有,请找出如何让NetBeans将.txt文件包含在它正在生成的jar中。或者,您可以从命令行运行
jar-xvf myJarFile.jar
。我检查它并看到my txt文件。当我编写文件f=new file(“xxxx/myTXTFile.txt”)时,它就在那里;此文件不存在。我在netbeans上试用,我需要文件。不可能?是的,不可能,文件表示操作系统文件;但是下一个java将看到许多编程文件系统的概括,比如zip文件系统。@phoenix的解决方案将此资源复制到一个临时文件,并使用该文件。您可以使用[File.createTempFile](为此,OutputStream更为通用:对于任何文件使用,都可以使用
新文件OutputStream(File)