Получение содержимого файла с помощью FTPClient Java

Я использую Commons FTPCLIENT. Мне просто нужно содержимое файла с ftp-сервера. я не хочу записывать его во временный файл. Есть ли способ сделать это. Fileoutputstream всегда должен указывать на локальный файл.

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


person Bijesh CHandran    schedule 27.12.2010    source источник
comment
Проверьте [FTPClientDemonstration] (java2s.com/Code/Java/Network-Protocol /)   -  person jmj    schedule 27.12.2010


Ответы (3)


Используйте _ 1_.

person dacwe    schedule 27.12.2010

Вы должны использовать метод 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;
person Gursel Koca    schedule 27.12.2010

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

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

-

 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
person Bijesh CHandran    schedule 27.12.2010