Tôi đang sử dụng FlatPack để phân tích cú pháp và tải dữ liệu từ các tệp phẳng. Điều này đòi hỏi phải tải một tập tin cấu hình lưu trữ ánh xạ của các cột của tập tin phẳng.Làm cách nào để truy cập tệp cấu hình bên trong bình?
Tôi có một hằng số để xác định vị trí của các tập tin bản đồ:
private static final String MAPPING_FILE = "src/com/company/config/Maping.pzmap.xml";
Tôi có một phân tích cú pháp (File datafile) phương pháp mà thực hiện các phân tích cú pháp:
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
}
Khi tôi jar lên tất cả mọi thứ và chạy nó như một cái lọ - nó ném bom trên FileReader mappingFileReader = new FileReader(MAPPING_FILE);
với một số FileNotFoundException
. Đó là tập tin bên trong bình mặc dù.
Làm cách nào để truy cập?
Tôi đã xem this question và this question về cách truy cập các tệp trong các thẻ và cả hai đều khuyên bạn nên tạm thời giải nén tệp. Tôi không muốn làm điều đó.
Đó phải là "Class.getResourceAsStream()" – mtpettyp
Rất tiếc. Cảm ơn vì điều đó. – skaffman