2010-12-27 6 views
6

Im przy użyciu wspólnych FTPCLIENT Po prostu chcę zawartość pliku z serwera ftp. Nie chcę zapisywać go w pliku tymczasowym. Czy jest jakiś sposób to zrobić. Strumień pliku powinien zawsze wskazywać na plik lokalny.Pobieranie zawartości pliku za pomocą klienta FTPClient Java

Z góry dziękuję.

+0

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

Odpowiedz

3

należy użyć metody retrieveFilestream zamiast metody 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

dziękuję za szybką odpowiedź ..

I to nie działa dla mnie .. to co próbowałem.

-

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