2010-12-27 10 views
6

Estoy usando commons FTPCLIENT Solo quiero el contenido del archivo desde el servidor ftp. no quiero escribirlo en un archivo temporal. ¿Hay alguna manera de hacer eso? El fileoutputstream siempre debe apuntar a un archivo local.Recuperando el contenido del archivo usando FTPClient Java

Gracias de antemano.

+0

Comprobar [FTPClientDemonstration] (http://www.java2s.com/Code/Java/Network-Protocol/Ftpclientdemonstration.htm) –

Respuesta

3

Debe utilizar el método retrieveFilestream en lugar de método retriveFile ..

FTPClient ftp = new FTPClient(); 
// configuration code for ftpclient port, server etc 
InputStream in = ftp.getretrieveFileStream("remoteFileName"); 
BufferedInputStream inbf = new BufferedInputStream(in); 
byte buffer[] = new byte[1024]; 
int readCount; 
byte result[] = null; 
int length = 0; 

while((readCount = inbf.read(buffer)) > 0) { 
     int preLength = length; 
     length += readCount; 
     byte temp[] = new byte[result.length]; 
     result = new byte[length]; 
     System.arraycopy(temp,0,result,0,temp.length); 
     System.arraycopy(buffer,0,result,preLength,readCount); 
} 
return result; 
0

Muchas gracias por la rápida respuesta ..

Y eso hicieron el trabajo para mí .. esto es lo que he intentado.

-

FTPclient fClient=new FTPclient(); 
    fClient.connect("server"); 
    Fclient.login("user","pwd"); 
     InputStream iStream=fClient.retrieveFileStream("file"); 
     BufferedInputStream bInf=new BufferedInputStream (iStream); 
     int bytesRead; 
    byte[] buffer=new byte[1024]; 
    String fileContent=null; 
    while((bytesRead=bInf.read(buffer))!=-1) 
    { 
     fileContent=new String(buffer,0,bytesRead); } 


    enter code here 
Cuestiones relacionadas