我正在使用FlatPack来解析和加载平面文件中的数据 . 这需要加载存储平面文件列的映射的配置文件 .
我有一个常量来定义映射文件的位置:
private static final String MAPPING_FILE = "src/com/company/config/Maping.pzmap.xml";
我有一个实际解析的解析(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
}
当我把所有东西都装 jar 并以 jar 形式运行时 - 它会在 FileReader mappingFileReader = new FileReader(MAPPING_FILE); 上用 FileNotFoundException 炸弹 . 那个文件虽然在jar里面 .
我怎么做到的?
我看了this question和this question关于访问jar中的文件,他们都建议暂时解压缩文件 . 我不想这样做 .