将文件路径传递给FileReader

将文件路径传递给FileReader,file,path,filereader,File,Path,Filereader,使用Netbeans,我试图将一些由文件读取器读取的文本文件资源打包到JAR文件中,但是由于文本文件不在resources文件夹中,JAR无法找到它们。如何告诉文件阅读器在哪里查找文件?(在我的例子中,例如“/src/resources/maps/level1.txt”) 目前,文本文件存储在项目文件夹中,可以使用“filename.txt”从那里读取。这听起来像两个问题。首先,资源被打包到JAR文件中,不能作为文件直接读取(是的,您可以在“分解”目录模式下执行类,但您的代码不应该依赖于此)。生

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


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

new InputStreamReader(this.getClass().getResourceAsStream("/maps/level1.txt"));
getResourceAsStream()位于类对象上的原因是,有时资源与类放在同一个包中。使用

this.getClass().getResourceAsStream("level1.txt") 
如果路径前面没有一个/斜杠,这将尝试将其定位在与“this”对象相同的包中

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