getResourceAsStream対して、ファイル、私は奇妙な問題を抱えています。FileInputStreamのClassPathResource対整合性
私はこれを行う場合:私は、ブックを作成しようとすると
InputStream is = getClass().getResourceAsStream("/template.xlsx");
:
InputStream is = new ClassPathResource("template.xlsx").getInputStream();
またはこの:
InputStream is = ClassLoader.getSystemResourceAsStream("template.xlsx");
それともこれを
Workbook wb = new XSSFWorkbook(is);
私はこのエラーを取得する:
java.util.zip.ZipException: invalid block type
しかし、私はこのように私のファイルを取得するとき:
InputStream is = new FileInputStream("C:/.../src/main/resources/template.xlsx");
をそれは働きます!
どうしたのですか?私はフルパスをファイルにハードコーディングできません。
誰かがこれを手伝ってくれますか?
おかげ
クラスパスからロードするときに'template.xlsx'のどのバージョンがロードされているかを完全に確認していますか? 'getResourceAsStream()'(など)は、多くの場所からリソースをロードできます。ファイル名では、何がロードされているかが絶対にわかります。 –