2012-08-14 101 views
1

我应该创建多个ftpproxyclient对象或单一一个就够由于它扔FTP忙于处理文件错误?Java文件I/O -ftp忙中出错读取文件错误

ftp = new FtpProxyClient(this.getFTPServername(hrGroupName), this.ftpPort, 
       ftpUserName, getFTPPassword(hrGroupName)); 

ftp.setBinaryMode(); 

is = ftp.getFile(feedFileName); 

//做一些处理并检查剩余的文件:

for (int i = personHeadDTO.getValueN().intValueExact() + 2; i < sequenceNo.intValueExact(); i++) { 

          fileName = feedFileName 
            .replace(".", "_" + i + "."); 

下面的代码抛出FTP是忙中出错:

      if(ftp.isFileExists(fileName)){ 
           body1.append(fileName); 
          } 
          else{ 
           body1.append(fileName+" (Not Available in archive folder)."); 
          } 

          body1.append(newline); 
         } 
+0

如果服务器说它正忙,也许服务器很忙。您需要解决问题的根源,或者继续尝试,直到解决问题。 ;) – 2012-08-14 10:40:03

+0

我可以使用相同的FtpProxyClient对象来读取所有的文件名.. – ashwinsakthi 2012-08-14 10:41:18

+0

一个ftp客户端就是您所需要的。我建议尝试使用首先不太常用的FTP服务器进行测试。 – 2012-08-14 10:42:00

回答

0

如果我删除线:

ftp.changeDirectory("prxdpshr"); 

ftp.getFile(feedFileName); 

我越来越没有错误,似乎有一个问题,当我得到一个文件,然后使用ftpclient对象做一些操作。

     String feedFileName="intusa35a.csv"; 
     ftp = new FtpProxyClient("server", 21, 
       "user", "pass"); 

     ftp.setBinaryMode(); 

     ftp.changeDirectory("prxdpshr"); 

     ftp.getFile(feedFileName); 

     ftp.changeDirectory("prxdpshr/archive_bkp"); 


     is=ftp.isFileExists("intusa35a.csv"); 

     is1=ftp.isFileExists("HR_Dorf_FeedFile.csv");   


     //lin = new LineNumberReader(new InputStreamReader(is)); 

     //lin1 = new LineNumberReader(new InputStreamReader(is1)); 

     String fileName=""; 
     StringBuffer body1=new StringBuffer(); 

     for (int i = 4 ; i < 10; i++) {     
      fileName = feedFileName 
        .replace(".", "_" + i + "."); 
      if(ftp.isFileExists(fileName)){ 
       body1.append(fileName); 
      } 
      else{ 
       body1.append(fileName+" (Not Available in archive folder)."); 
      } 

      body1.append("\n"); 
     } 

    } 

我已经使用了一个单独的ftpclient检查空虚。