Java - Acceso a ficheros remotos

 
Vista:

Acceso a ficheros remotos

Publicado por Jose (6 intervenciones) el 03/04/2001 20:50:16
Buenas tardes.
Tengo q leer el contenido de un fichero que se encuentra en una maquina remota.
El codigo que he puesto para acceder a dicha maquina es:

URL entrada = new URL("file://Goleta/Entrada.txt");
DataInputStream dis = new DataInputStream(entrada.openStream());

pero cuando lo ejecuto me da la siguiente exception:
IOException:sun.net.ftp.FtpLoginEsception:user

Me imagino q sera porque no le meto un Login, pero es q no se como introducirselo.
Si alguien me puede ayudar con esto se lo agradeceria, o si conoce otra manera de acceder al fichero tambien me vendria bien.

Un saludo y muchas gracias por anticipado.

Jose Manuel Rubio
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

RE:Acceso a ficheros remotos

Publicado por Angel Aparicio (2 intervenciones) el 04/04/2001 14:08:32
La solución que te planteo es válida para máquinas Unix:
Lo primero es que exista en la máquina remota un usuario con el mismo login a aquél que ejecuta el programa java en la máquina de origen. Después tienes que crear un fichero llamado .rhosts en el home de este usuario en la máquina remota que debe contener, en una misma línea, la ip de la máquina que va a acceder a ella y el login del usuario que entrará.
Por ejemplo, sea la máquina en la que tenemos el código fuente de java la 100.100.100.001 y la máquina remota la 100.100.100.002. Si el programa lo ejecutamos con usuario root crearíamos en la máquina remota el citado fichero .rhosts con la siguiente información:
100.100.100.001 root
Una vez preparado esto podemos ejecutar llamadas al remote shell de unix desde java, es decir, ejecutaremos órdenes directamente con Process, asegurándonos de poner, delante del comando lo siguiente: rsh 100.100.100.002
Así, si quisieras leer el contenido del fichero prueba que está en /usr/jj/prueba deberías disponer de las siguientes líneas en tu código:

Runtime r = Runtime.getRuntime();
Process p = r.exec("rsh 100.100.100.001 cat /usr/jj/prueba");

Además el resultado del comando lo puedes recoger como si se hubiese ejecutado en local con un InputStream y el BufferedReader.

Saludos
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:Acceso a ficheros remotos

Publicado por Xavi Canal (241 intervenciones) el 04/04/2001 16:40:59
Nas,

una URL con login y pass se suele meter así:

ftp://login:user@ladirección

no recuerdo si es así o intercanviando la @
por los 2 puntos (:), usease

ftp://login@user:ladireccion

att. Xavi Canal
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:Acceso a ficheros remotos

Publicado por Juan (5 intervenciones) el 09/04/2001 12:06:30
Si deseas leer un fichero en la maquina host remota prueba con lo siguiente,
,(ojo con las seguridades, esto ya seria otro tema):

URL filein = new URL(getCodeBase() + "fichero.txt");
DataInputStream dis = new
DataInputStream(filein.openStream());
String inputLine;

int i=0;
while ((inputLine = dis.readLine()) != null) {
i = i + 1;
if (i == 1) s_anyo_academico = inputLine;
if (i == 2) anyo_lectivo.setText(inputLine);
if (i == 3) plan.setText(inputLine);
if (i == 4) centro.setText(inputLine);
}
dis.close();
} catch (MalformedURLException me) {
System.out.println("ERROR de MalformedURLException: " + me);
} catch (IOException ioe) {
System.out.println("ERROR de IOException: " + ioe); }
catch(Exception e) {
System.out.println ("ERROR de Excepcion : " + e); }

Un Saludo.
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