Springbootパッケージ後resourcesの静的ファイルを取得

6340 ワード

Springbootパッケージ化後はresourcesの下のファイルに直接アクセスできません.例えばcsvファイルを読み込むには、ResourceLoaderで取得する必要があります.
//  csv    ,       
        File csvFile = null;
        InputStream stream = null;
        InputStreamReader reader = null;
        try {
            ResourceLoader resourceLoader = new DefaultResourceLoader();
            //  csv  
            stream = resourceLoader.getResource("classpath:bayonet-pair.csv").getInputStream();  //     
            reader = new InputStreamReader(stream, "GBK");
            CSVParser parser = CSVFormat.DEFAULT.parse(reader);
            Iterator<CSVRecord> iterator = parser.iterator();
            iterator.next(); //     
            CSVRecord item;
            while (iterator.hasNext()){
                item = iterator.next();
				// 
            }
        } catch (IndexOutOfBoundsException e) {
            log.error("  !!   csv          !      ‘*’   ",e);
        }catch (Exception e) {
            log.error("  !!  CSV         ",e);
        }finally {
            if(reader != null){
                reader.close();
            }
            if(stream != null){
                stream.close();
            }
        }
        log.info("       .");
    }