将文件路径传递给FileReader

时间:2013-12-05 04:22:37

标签: file path filereader

使用Netbeans,我试图将一些由FileReader读取的文本文件资源打包到JAR文件中,但由于文本文件不在资源文件夹中,因此JAR无法找到它们。如何告诉文件读取器在哪里查找文件? (例如我的情况下的“/src/resources/maps/level1.txt”。)

目前,文本文件存储在项目文件夹中,可以使用“filename.txt”从那里读取

1 个答案:

答案 0 :(得分:0)

嗯。这听起来像是两个问题。首先,资源被打包到JAR文件中,不能直接作为文件读取(是的,您可以在“爆炸”目录模式下执行类,但您的代码不应该依赖于此)。生成包含类和资源的JAR文件后,可以使用InputStreamReader而不是FileReader访问资源

new InputStreamReader(this.getClass().getResourceAsStream("/maps/level1.txt"));

getResourceAsStream()在Class对象上的原因是,有时资源与类放在同一个包中。使用..

this.getClass().getResourceAsStream("level1.txt") 

在路径的前面没有/斜杠,这会尝试在与“this”对象相同的包中找到它。

当资源在根包中,或者有自己的目录结构时,例如/ maps /。您可以在任何类(在同一个类加载器中)调用this.getClass()来查找资源。