【问题标题】:Passing in a file path to FileReader将文件路径传递给 FileReader
【发布时间】:2013-12-05 04:22:36
【问题描述】:

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

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

【问题讨论】:

    标签: file path filereader


    【解决方案1】:

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

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

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

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

    如果路径前面没有 / 斜线,这将尝试将 this 定位在与“this”对象相同的包中。

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

    【讨论】:

      猜你喜欢
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多