java - leer - La lectura de src/main/resources da NullPointerException
object to excel java (2)
FileInputStream cargará la ruta del archivo que pasa al constructor como relativa desde el directorio de trabajo del proceso de Java.
getResourceAsStream() cargará una ruta de archivo relativa desde el classpath de su aplicación.
Cuando utiliza .getClass().getResource(fileName)
, considera que la ubicación de fileName es la misma ubicación que la de la clase que realiza la llamada.
Cuando usa .getClass().getClassLoader().getResource(fileName)
, considera que la ubicación de fileName es la raíz - en otras palabras, la carpeta bin.
El archivo debe ubicarse en src/main/resources
al cargar con el cargador de clases
En resumen, debe usar .getClass().getClassLoader().getResource(fileName)
para cargar el archivo en su caso.
En mi proyecto Maven, tengo un archivo xls en src / main / resources. Cuando lo leí así:
InputStream in = new
FileInputStream("src/main/resources/WBU_template.xls");
todo está bien.
Sin embargo, quiero leerlo como InputStream con getResourceAsStream. Cuando hago esto, con o sin barra, siempre obtengo un NPE.
private static final String TEMPLATEFILE = "/WBU_template.xls";
InputStream in = this.getClass.getResourceAsStream(TEMPLATEFILE);
No importa si la barra está allí o no, o si utilizo el método getClassLoader (), todavía obtengo un NullPointer.
También he intentado esto:
URL u = this.getClass().getResource(TEMPLATEFILE);
System.out.println(u.getPath());
la consola dice ... / target / classes / WBU_template.xls y luego obtiene mi NullPointer.
Qué estoy haciendo mal ?
Normalmente cargo archivos de WEB-INF como este
session.getServletContext().getResourceAsStream("/WEB-INF/WBU_template.xls")