Foros del Web » Programación para mayores de 30 ;) » Java »

leer archivos en netbeans desde camino relativo.

Estas en el tema de leer archivos en netbeans desde camino relativo. en el foro de Java en Foros del Web. Buenos días, estoy programando en Java con NetBeans, y utilizo la clase FileInputStream, porque necesito leer un archivo. Mi pregunta es que para trabajar en ...
  #1 (permalink)  
Antiguo 14/03/2011, 02:56
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
leer archivos en netbeans desde camino relativo.

Buenos días,

estoy programando en Java con NetBeans, y utilizo la clase FileInputStream, porque necesito leer un archivo.
Mi pregunta es que para trabajar en local me basta con indicar el camino absoluto de localización del fichero

(C:\\NetBeansProjects\\MiProyecto\\src\\MiPaquete\ \NombreFichero.fich),

pero mi aplicación tiene que ejecutarse en red y cuando creo el jar para colocarlo en otro ordenador no encuentra el archivo, porque la ruta, obviamente, no es la misma.

Tengo el archivo dentro del directorio del proyecto, y me gustaría saber si hay alguna forma de indicar un camino relativo, que permita utilizar el programa en otros ordenadores.

espero haberme explicado bien, y gracias de antemano por vuestro tiempo.

un saludo.
  #2 (permalink)  
Antiguo 14/03/2011, 03:42
 
Fecha de Ingreso: marzo-2011
Mensajes: 25
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: leer archivos en netbeans desde camino relativo.

Buenas,

has probado de poner desde donde quieras llamarlo "./ruta?" o sin el punto, con la barra directamente?

En teoria te tiene que funcionar....

Suerte

Oriol Soler
Infosintesis Solution Gorup
www.infosintesis.net
  #3 (permalink)  
Antiguo 14/03/2011, 03:46
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 1 mes
Puntos: 78
Respuesta: leer archivos en netbeans desde camino relativo.

Hola ibaneight8,
lo que necesitas es saber cual es la ruta en la que se está ejecutando tu aplicación "al vuelo", de este modo podrás encontrarlo en "ruta" + "tuArchivo".
ServletContext te dará esa ruta.

Un saludo.

Athlit.
  #4 (permalink)  
Antiguo 14/03/2011, 05:42
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: leer archivos en netbeans desde camino relativo.

Buenos días de nuevo,

lo primero daros las gracias por vuestras respuestas, pero sigo sin solucionar mi problema, y no se si me he explicado mal o no os entiendo yo a vosotros.

La cuestión es que tengo un fichero en un paquete "Ressources" dentro de la aplicación cliente, y quiero utilizar la misma aplicación en otro ordenador. Al crear el .jar para poder ejecutarla en el otro ordenador no funciona, porque dice que no encuentra el archivo.

adjunto 2 imágenes en las que salen la organización de mis proyectos y también la forma en la que cargo el fichero en la aplicación. De esta manera en la maquina local no me da problemas y encuentra el fichero, pero cuando llevo el -jar a otro pc deja de funcionar.

http://img853.imageshack.us/i/dsadads.jpg/
http://img59.imageshack.us/i/dsadsaz.jpg/

gracias, un saludo.
  #5 (permalink)  
Antiguo 14/03/2011, 08:30
Avatar de titocba  
Fecha de Ingreso: agosto-2008
Ubicación: Cordoba
Mensajes: 256
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: leer archivos en netbeans desde camino relativo.

Aca creo que esta tu solucion
http://www.red-geek.com.ar/todo-java...oluta-java.php
  #6 (permalink)  
Antiguo 14/03/2011, 09:21
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: leer archivos en netbeans desde camino relativo.

Gracias por la respuesta titocba, pero en ese enlace utiliza las clases FacesContext y ServletContext que yo no tengo...

y ademas no puedo añadir el import a la clase FacesContext (no se por que :()
y yo busco una opción que se pueda hacer con las clases que utilizo actualmente.

no pensaba que seria tan complicado encontrar esto.
  #7 (permalink)  
Antiguo 14/03/2011, 10:56
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 1 mes
Puntos: 78
Respuesta: leer archivos en netbeans desde camino relativo.

Hola ibaneight8,
para usar ServletContext no te hace falta agregar ninguna librería adicional. Es propio de la API de Java.
De esta forma obtendrás la ruta que quieres:

Código:
ServletContext srvcon = getServletContext();
String rutafisica = srvcon.getRealPath("");
" " es la ruta raiz de tu aplicación. Puedes poner WEB-INF por ejemplo y te dará la ruta completa hasta ese directorio.

Un saludo.

Athlit.
  #8 (permalink)  
Antiguo 16/03/2011, 04:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: leer archivos en netbeans desde camino relativo.

Buenos días,

Gracias ElAthlit por responder.

Yo tengo el JDK 1.6 y al escribir la clase ServletContext, me aparece un error, como que tengo que crear la clase ServletContext en mi paquete. Y no puedo importar el paquete de javax.servlet.

me han dicho que si tengo los ficheros que necesito en un pc que hace de servidor, puedo acceder a ellos dentro de mi red local con la dirección ip del pc que hace de servidor.
pongamos que la ip del servidor es 1.1.1.10, para acceder a ese pc desde otro (ip 1.1.1.1) dentro de mi red como tendría que hacerlo?

Gracias.
  #9 (permalink)  
Antiguo 30/03/2011, 00:58
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
De acuerdo Respuesta: leer archivos en netbeans desde camino relativo.

Buenos días,

ya hace unos dias que solucione mi problema, pero no he podido escribirlo aqui, asi que por si a alguien le vuelve a surgir este problema propongo mi solucion.

Hay una clase en java que es la clase System, y permite recuperar el directorio actual del usuario, por lo tanto en funcion de donde este localizada la clase que se esta ejecutando podremos acceder a ese directorio.

Para ello utilizamos String directorioActual = System.getProperty("user.dir").

Muchas gracias por todas vuestras respuestas.
  #10 (permalink)  
Antiguo 30/03/2011, 02:09
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 1 mes
Puntos: 78
Respuesta: leer archivos en netbeans desde camino relativo.

Ok!
  #11 (permalink)  
Antiguo 30/03/2011, 06:03
 
Fecha de Ingreso: agosto-2010
Mensajes: 51
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: leer archivos en netbeans desde camino relativo.

ibaneight8 puedes poner el codigo del metodo donde lo haces es que sigo sin poder sacarlo, gracias
  #12 (permalink)  
Antiguo 30/03/2011, 06:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: leer archivos en netbeans desde camino relativo.

hola dubby,

lo puedes utilizar en cualquier parte del codigo, cuando necesites acceder a la ubicacion de la clase en la que estas.
En mi caso, tengo los datos en un fichero de propiedades (propiedades.properties), y necesito cargarlo sin tener que poner el camino absoluto.

// aqui obtengo el camino absoluto de mi directorio actual
String directorio = System.getProperty("user.dir");

// aqui obtengo el tipo de separador que hay entre las carpetas
String separador = System.getProperty("file.separator");

// cargo en mi clase Properties() el fichero que necesito
props.load(new FileInputStream(directorio + separador + "src\\nombre_proyecto\\ressources\\propiedades.pro perties"));

si imprimes por pantalla con un System.out.prinln(directorio); se entiende mejor que devuelve la funcion getProperty()

espero que haya quedado claro, y puedas solucionar tu problema !

un saludo
  #13 (permalink)  
Antiguo 30/03/2011, 06:14
 
Fecha de Ingreso: agosto-2010
Mensajes: 51
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: leer archivos en netbeans desde camino relativo.

Si la verdad que si se entiende mejor asi, pero una pregunta en donde pones src\\nombre_proyecto\\ressources\\propiedades.pro perties ahi pones tu ruta al servidor o al local? es lo que no entiendo
  #14 (permalink)  
Antiguo 30/03/2011, 06:19
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: leer archivos en netbeans desde camino relativo.

no se si entiendo muy bien tu pregunta, pero este codigo lo pones dentro de una clase, que luego podras usar en varias maquinas.

el metodo getProperty() permite obtener el camino de la maquina en la que se esta ejecutando, para no tener que escribir en todas las maquinas que quieran usar el programa su camino propio que puede ser diferente en cada uno.

si he entendido tu pregunta, te contesto que tienes que poner ese camino cuando creas la clase, y luego cuando la vayas a ejecutar en un servidor no tendras que preocuparte por esto, ya que al exportarlo guardara esa jerarquia de carpetas.
  #15 (permalink)  
Antiguo 30/03/2011, 06:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 51
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: leer archivos en netbeans desde camino relativo.

mmmm creo que no me estoy enterando la verdad, yo esa ruta no la voy a tener en un properties o bueno si la puedo tener pero la ruta que metes en el properties es la ruta al servidor desde donde esta colgando el directorio con sus respectivas carpetas?
  #16 (permalink)  
Antiguo 30/03/2011, 06:27
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: leer archivos en netbeans desde camino relativo.

bueno lo del fichero properties es opcional, pero era el ejemplo que yo tenia por eso lo he puesto.

pero para cargar cualquier tipo de fichero que este en tu maquina puedes usar la clase getProperty() para obtener un camino en la maquina local (la que este ejecutando el programa en ese momento)

yo en el properties no tengo ninguna ruta, solo tengo variables declaradas para el resto de la implementacion.

con esto solo consigo recuperar un fichero de la maquina local para poder leer los datos que estan escritos en el.

el servidor en el que quieras usar el programa tendra otra ruta distinta a la maquina en la que estas programando tu seguramente, y la variable de sistema user.dir toma esa ruta y asi no tienes que escribirla tu manualmente, en cada maquina en la que quieras usar el programa en el futuro.

Etiquetas: netbeans, relativo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:34.