使用FTPClient Java检索文件内容

时间:2010-12-27 11:03:17

标签: java ftp apache-commons

我使用公共FTPCLIENT 我只想要来自ftp服务器的文件内容。 我不想把它写入临时文件。 有没有办法做到这一点。 fileoutputstream应始终指向本地文件。

提前致谢。

3 个答案:

答案 0 :(得分:7)

答案 1 :(得分: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;

答案 2 :(得分: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