Tengo un extraño problema:FileInputStream vs vs ClassPathResource getResourceAsStream y presentar la integridad
en src/main/resources tengo un archivo "template.xlsx".
si hago esto:
InputStream is = new ClassPathResource("template.xlsx").getInputStream();
O esto:
InputStream is = ClassLoader.getSystemResourceAsStream("template.xlsx");
O esto:
InputStream is = getClass().getResourceAsStream("/template.xlsx");
Cuando trato de crear un libro:
Workbook wb = new XSSFWorkbook(is);
consigo este error:
java.util.zip.ZipException: invalid block type
PERO, cuando llegue a mi archivo de la siguiente manera:
InputStream is = new FileInputStream("C:/.../src/main/resources/template.xlsx");
Funciona!
¿Qué pasa? No puedo codificar el camino completo al archivo.
¿Alguien me puede ayudar con esto?
Gracias
¿Puede asegurarse de que cuando carga del classpath usted están * completamente * seguros de qué versión de 'template.xlsx' se está cargando? Un 'getResourceAsStream()' (y similares) puede cargar un recurso desde muchos lugares. Con el nombre de archivo, está absolutamente seguro de lo que se está cargando. –