Mam dziwny problem:FileInputStream vs ClassPathResource vs getResourceAsStream i złożyć integralności
w src/main/zasobów Mam "template.xlsx" plik.
Jeśli mogę to zrobić:
InputStream is = new ClassPathResource("template.xlsx").getInputStream();
albo to:
InputStream is = ClassLoader.getSystemResourceAsStream("template.xlsx");
Albo to:
InputStream is = getClass().getResourceAsStream("/template.xlsx");
Kiedy próbuję utworzyć skoroszyt:
Workbook wb = new XSSFWorkbook(is);
otrzymuję ten błąd:
java.util.zip.ZipException: invalid block type
ale kiedy ja dostać mój plik tak:
InputStream is = new FileInputStream("C:/.../src/main/resources/template.xlsx");
To działa!
Co jest nie tak? Nie mogę w pełni zakodować pełnej ścieżki do pliku.
Czy ktoś może mi w tym pomóc?
Dzięki
Czy możesz upewnić się, że po wczytaniu ze ścieżki klasy są * całkowicie * pewni, która wersja 'template.xlsx' jest ładowana? 'GetResourceAsStream()' (i temu podobne) może załadować zasób z wielu miejsc. Dzięki nazwie pliku masz całkowitą pewność, co jest ładowane. –