Я использую 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
}
Когда я все собираю и запускаю как банку - он бомбардирует FileReader mappingFileReader = new FileReader(MAPPING_FILE);
с FileNotFoundException
. Этот файл находится внутри банки.
Как мне добраться до него?
Я рассмотрел этот вопрос и этот вопрос о доступе к файлам внутри jar-файлов, и они оба рекомендуют временно извлечь файл. Я не хочу этого делать.