Como se lee un archivo en un ftp

Iniciado por juni85, 28 Octubre 2011, 11:47 AM

0 Miembros y 2 Visitantes están viendo este tema.

juni85

Me gustaria leer un archivo que tengo en un servidor ftp la esta:
¿Como hago la conexión?

¿Puede ser que para leerlo y  modificarlo tenga que descargarlo en local?

--os pongo lo que he realizado
Código (java) [Seleccionar]


public class Ftp {

     public static String visualizarFichero = "";

    try
    {
           URL url = new URL("ftp://" + user + ":" + pass + "@" + server + localPath);
           URLConnection urlc = url.openConnection();
         
               
                FileReader fr = new FileReader(localPath);
                BufferedReader bf = new BufferedReader(fr);
                String complete = "";
                String line = bf.readLine();

                while (line != null)
                {
                    complete += line + "\n";
                    line = bf.readLine();
                }

                visualizarFichero = complete;
                bf.close();
                fr.close();
                System.out.println("--- "+visualizarFichero);
               
     } catch (Exception ex)
     {
        ex.printStackTrace();
        System.out.println(ex.getMessage());

    }

}

}


adastra

#1
Utiliza la clase sun.net.ftp.FtpClient por ejemplo:

Código (java) [Seleccionar]

import java.io.IOException;

import sun.net.ftp.FtpClient;

public class FtpConnectionDemo {
 public static int BUFFER_SIZE = 10240;

 private FtpClient m_client;

 private String host = "";

 private String user = "";

 private String password = "";

 private String sDir = "";

 public FtpConnectionDemo() {
   try {
     System.out.println("Connecting to host " + host);
     m_client = new FtpClient(host);
     m_client.login(user, password);
     System.out.println("User " + user + " login OK");
     System.out.println(m_client.welcomeMsg);
     m_client.cd(sDir);
     System.out.println("Directory: " + sDir);
     m_client.binary();
     System.out.println("Success.");
   } catch (Exception ex) {
     System.out.println("Error: " + ex.toString());
   }
 }
 protected void disconnect() {
   if (m_client != null) {
     try {
       m_client.closeServer();
     } catch (IOException ex) {
     }
     m_client = null;
   }
 }
}          


Siempre que necesito realizar una conexión por FTP utilizo dicha clase.

referencia: http://www.java2s.com/Code/Java/Network-Protocol/Establishftpconnection.htm

juni85

El codigo me da error en      m_client = new FtpClient(host);
Estoy usando netbeans
Otra cosa aparte de hacer la conexión como hago para leer??

juni85

He creado la conexión de la sigueinte manera
ahora como hago para leer el contenido de un fichero ?
//en localPath pongo por ejemplo /fichero1.txt

Antes de empezar me he descargado la siguiente libreria
http://apache.rediris.es//commons/net/binaries/commons-net-3.0.1-bin.zip


import org.apache.commons.net.ftp.FTPClient;

Código (java) [Seleccionar]

public class Ftp
{

     public static String visualizarFichero = "";
     public static boolean login;
     public static FTPClient client = new FTPClient();


public static void leerFicheroFTP(String server, String user, String pass, String localPath)
{
    try
         
    {

          client.connect(server);
          login = client.login(user,pass);

    } catch (IOException ex)
          {
                ex.printStackTrace();
                System.out.println(ex.getMessage());
          }

      if (login == true)
       {
            try
            {
                FileReader fr = new FileReader(localPath);
                BufferedReader bf = new BufferedReader(fr);
                String complete = "";
                String line = bf.readLine();

                while (line != null)
                {
                    complete += line + "\n";
                    line = bf.readLine();
                }
                visualizarFichero = complete;
                bf.close();
                fr.close();
                System.out.println("--- "+visualizarFichero);
                client.logout();
                client.disconnect();

             }catch(IOException ex)
                {
                    ex.printStackTrace();
                    System.out.println(ex.getMessage());
                }
           
    }

}
}






adastra

Usa el objeto "client" para recuperar información sobre el servidor FTP, en cualquiera de los casos puedes consultar los métodos que te facilita dicho objeto y ver que información te resulta útil.

juni85

Disculpame pero no me enterado de nada

adastra

la instancia del objeto FTPClient (client) tiene una serie de métodos que te permiten acceder información del servidor FTP (a lo que tengas permisos) estas librerias y métodos, en cualquier lenguaje de programación se llama API.
Mira este enlace, donde te indica todos los métodos disponibles en la clase FTPClient

http://commons.apache.org/net/apidocs/org/apache/commons/net/ftp/FTPClient.html

Allí veras más ejemplos y una extensa implementación de métodos... así que, a leer!