添加.txt文件作为Java资源

添加.txt文件作为Java资源,java,file,url,embedded-resource,getresource,Java,File,Url,Embedded Resource,Getresource,我有一个.txt文件和一个名为res的文件中的图像。我也在文件中添加了我的路径。我编写了下面的代码,它在我的EclipseIDE中工作得很好。导出jar并运行它时,它什么也不做。使用cmd运行jar表示找不到类路径。因此,我尝试了第二段代码,但没有成功。我在那里的形象很好bgi=newImageIcon(getClass().getResource(“bg.png”)) Scanner s=null; 试一试{ s=新扫描仪(新文件(“res//10kaddress.txt”); }catch(

我有一个.txt文件和一个名为res的文件中的图像。我也在文件中添加了我的路径。我编写了下面的代码,它在我的EclipseIDE中工作得很好。导出jar并运行它时,它什么也不做。使用cmd运行jar表示找不到类路径。因此,我尝试了第二段代码,但没有成功。我在那里的形象很好
bgi=newImageIcon(getClass().getResource(“bg.png”))

Scanner s=null;
试一试{
s=新扫描仪(新文件(“res//10kaddress.txt”);
}catch(filenotfounde异常){
e、 printStackTrace();
}
ArrayList paddress=新的ArrayList();
而(s.hasNext()){
paddress.add(s.next());
}
s、 close();
所以我试着在下面这样做,无论我做什么,它都不会读取txt文件

URL url = GUI.class.getResource("10kaddress.txt");
    File ff = new File(url.getPath());


    Scanner s = null;
    try {
        s = new Scanner(ff);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    ArrayList<String> paddress = new ArrayList<String>();
    while (s.hasNext()){
        paddress.add(s.next());
    }
    s.close();
URL=GUI.class.getResource(“10kaddress.txt”);
File ff=新文件(url.getPath());
扫描器s=null;
试一试{
s=新扫描仪(ff);
}catch(filenotfounde异常){
e、 printStackTrace();
}
ArrayList paddress=新的ArrayList();
而(s.hasNext()){
paddress.add(s.next());
}
s、 close();
然后得到这个错误

java.io.FileNotFoundException: C:\Users\Major%20Lee\Sketch\GUI\res\10kaddress.txt (The system cannot find the path specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.util.Scanner.<init>(Unknown Source)
    at GUI.main(GUI.java:68)
Exception in thread "main" java.lang.NullPointerException
    at GUI.main(GUI.java:73)
java.io.FileNotFoundException:C:\Users\Major%20Lee\Sketch\GUI\res\10kaddress.txt(系统找不到指定的路径)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(未知源)
位于java.util.Scanner。(未知源)
位于GUI.main(GUI.java:68)
线程“main”java.lang.NullPointerException中出现异常
位于GUI.main(GUI.java:73)

任何帮助都会很好。谢谢

我会将其作为ResourceStream打开(或者我只会使用ResourceBundle),就像这样-

InputStream is = getClass().getResourceAsStream("10kaddress.txt");
Scanner s = new Scanner(is);

当您在JAR中嵌入了一个文件时,您需要使用
getResourceAsStream()
,正如前面所指出的那样

另外,我怀疑你的道路上有问题。从错误中,我可以看出您在Windows计算机上。您的路径是:

res//10kaddress.txt  
转义分隔符时,请使用
/
(单正斜杠)或
\\
(双反斜杠)。反斜杠有另一个反斜杠,因此称为转义。尝试更改路径,看看是否适合您

因此,将您的路径设置为:

res/10kaddress.txt   

手动仔细检查文件是否位于指定的路径上。

很明显的问题是,文件是否位于路径:C:\Users\Major%20Lee\Sketch\GUI\res\10kaddress.txt?将资源作为流获取并使用它构建扫描仪。可能重复:很好的答案+1我通常避免提及
getResourceAsStream
,因为它通常返回一个不可重新定位的流,而许多处理流的方法要求它们可以重新定位(最明显的是在处理媒体文件时)。所以我坚持使用
getResource(..)
来获取URL。返回的流是可重新定位的。
res/10kaddress.txt