2010-12-27 2 views
6

Im using commons FTPCLIENT Я просто хочу содержимое файла с ftp-сервера. Я не хочу писать его во временный файл. Есть ли способ сделать это. Файл fileoutputstream всегда должен указывать на локальный файл.Извлечение содержимого файла с использованием FTPClient Java

Заранее спасибо.

+0

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

ответ

3

Вы должны использовать метод retrieveFilestream вместо метода 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

Большое спасибо за быстрый ответ ..

И что сделал работу для меня .. это то, что я пытался.

-

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 
Смежные вопросы