Java - Problema con getResourceAsStream

 
Vista:

Problema con getResourceAsStream

Publicado por Antonio (2 intervenciones) el 22/10/2006 22:48:09
Al usar esta sentencia en mi programa, is toma el valor null siempre:

InputStream is = MiClase.class.getResourceAsStream(archivo);

Pensé que podría ser que no tenía elarchivo en la carpeta correcta, así que probé lo siguiente:

File mi_archivo = new File (archivo);

Comprobé que su ruta era distinta de null, y además correcta y entonces lo usé para asignar al InputStream como sigue:

InputStream is = MiClase.class.GetResourceAsStream(mi_archivo.getAbsolutePath( ));

Pero aún así no conseguí nada, sólo saber que no es problema de dónde se encuentra el archivo, puesto que la ruta es correcta.

Alguien tiene alguna idea? muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Problema con getResourceAsStream

Publicado por chuidiang (950 intervenciones) el 23/10/2006 05:46:50
Hola:

No estoy muy seguro, pero creo que class.getResourceAsStream() se usa para cargar ficheros que estén dentro del jar de tu aplicación y no para ficheros normales.
La ruta es relativa a lo que hay dentro del jar y no tiene sentido el getAbsolutePath().

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con getResourceAsStream

Publicado por julian andres marin (1 intervención) el 13/10/2011 18:13:56
no uses esa sentencia, utiliza FileInputStream inStream = new FileInputStream(propertyFilePath);
asi si funciona, estoy de acuerdo con el segundo comentario el getResource se usa para ficheros q el classLoader pueda leer, y son los q estan dentro de su contexto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con getResourceAsStream

Publicado por Carlos (16 intervenciones) el 09/05/2013 18:57:24
La clase File accede fisicamente al disco, por lo que necesita una ruta absoluta o en su defecto trabaja con la ruta en la que se carga la aplicacion o su container en el caso de una aplicacion web.

Si usas getResource o getResourceAsStream trabajan de forma relativa al classloader, por lo que la ruta raiz que va a tomar va a ser el classpath. Tipicamente suele ser lo contenido en el directorio donde generas las clases java compiladas (en eclipse lo habitual es que sea target/classes).

En el caso de un JAR o WAR, el classpath es el raiz del paquete, por eso en los WAR sobre todo, siempre se ponen este tipo de recursos bajo un directorio WEB-INF o META-INF (hay mas motivos, segun las tecnologias que integre tu aplicacion)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar