如何访问 jar 中的配置文件?

新手上路,请多包涵

我正在使用 FlatPack 从平面文件中解析和加载数据。这需要加载存储平面文件列映射的配置文件。

我有一个常量来定义映射文件的位置:

 private static final String MAPPING_FILE = "src/com/company/config/Maping.pzmap.xml";

我有一个实际执行解析的 parse(File dataFile) 方法:

 private void parse(File dataFile) throws FileNotFoundException, SQLException {
        Parser parser;

        log.info("Parsing " + dataFile.getName());

        FileReader mappingFileReader = new FileReader(MAPPING_FILE);
        FileReader dataFileReader = new FileReader(dataFile);

        parser = DefaultParserFactory.getInstance().newFixedLengthParser(mappingFileReader, dataFileReader);
        parser.setHandlingShortLines(true);

        DataSet dataSet = parser.parse();

        //process the data
}

当我将所有东西打包并作为一个罐子运行时 - 它在 FileReader mappingFileReader = new FileReader(MAPPING_FILE); 上用 FileNotFoundException 。该文件虽然在罐子里。

我怎样才能得到它?

我看过 这个问题这个 关于访问罐子里的文件的问题,他们都建议暂时提取文件。我不想那样做。

原文由 Owen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 425
2 个回答

一般来说,如果它在 JAR 中,则它不是文件。您应该使用 Class.getResourceAsStream(String) 或类似的方式加载数据。

原文由 skaffman 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏