源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java操作ftp下载文件示例

  • 时间:2022-03-19 15:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java操作ftp下载文件示例
[u]复制代码[/u] 代码如下:
    /**      *      * JAVA操作 FTP 下载      * 文件下载。      *      */     private void ftpDownload()     {         FTPClient ftpClient = null;         InputStream input = null;         boolean loginFlag = false;         List<String> list = new ArrayList<String>();         try         {             int defaultPort = CommonsMessage.FTP_DEFAULT_PORT; // 21             int timeout = M400Constant.NUM_SIXTY_THOUSAND * M400Constant.NUM_TWO; // 120000             ftpClient = new FTPClient();             ftpClient.setDefaultPort(defaultPort);             ftpClient.setConnectTimeout(timeout); //            ftpClient.setSoTimeout(timeout);             ftpClient.setDefaultTimeout(timeout);             ftpClient.setDataTimeout(timeout);             ftpClient.setControlEncoding("UTF-8");             FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);             conf.setServerLanguageCode("en");             conf.setDefaultDateFormatStr("MMM dd HH:mm");             ftpClient.configure(conf);             ftpClient.connect(SystemConfig.getKey("scpFtpIp"));             loginFlag = ftpClient.login(SystemConfig.getKey("scpFtpUserName").trim(),                     SystemConfig.getKey("scpFtpPassword").trim());             String ftpDir = SystemConfig.getKey("ftpHangupDir").trim();             if (!loginFlag)             {                 DEBUGGER.debug("login scp ftp is :" + loginFlag);             }             // String ftpDir = SystemConfig.getKey("ftpHangupDir").trim();             if (ftpClient.changeWorkingDirectory(ftpDir))             {                                 FTPFile file[] = ftpClient.listFiles(ftpDir);                 if (file != null && file.length > 0)                 {                     DEBUGGER.debug("hungup file size is:  " + file.length);                     for (int i = 0; i < file.length; i++)                     {                         String fileName = file[i].getName();                         ftpClient.setBufferSize(CommonsMessage.ONE_K_BUFFER_SIZE);                         // 设置文件类型(二进制)                         ftpClient.setFileType(FTP.BINARY_FILE_TYPE);                         input = ftpClient.retrieveFileStream(fileName);                         processInput(ftpClient, input, list, fileName);                         // if (downFlag) {                         // ftpClient.deleteFile(fileName);                         // }                     }                 }                 else                 {                     try                     {                         Thread.sleep(M400Constant.NUM_FIVE_THOUSAND);                     }                     catch (InterruptedException e)                     {                         /*                          * if (DEBUGGER.isDebugEnable()) {                          * DEBUGGER.debug("Failed to queryScpToQuery", e); }                          */                         error("Failed to queryScpToQuery", e);                     }                 }             }             else             {                 DEBUGGER.debug("scp dir is error ");             }         }         catch (Exception e)         {             /*              * DEBUGGER.debug("dowonload file is faild  ", e);              */             error("dowonload file is faild  ", e);         }         finally         {             close(input, "close inputStream  is faild  ");             if (ftpClient != null)             {                 try                 {                     deleteFile(ftpClient, list);                     boolean logoutFlag = false;                     try                     {                         logoutFlag = ftpClient.logout();                         // DEBUGGER.debug("logout : " + logoutFlag);                     }                     catch (Exception e)                     {                         /*                          * DEBUGGER.debug("logout : " + logoutFlag);                          */                         error("logout : " + logoutFlag, e);                     }                     ftpClient = null;                 }                 catch (Exception e)                 {                     /*                      * if (DEBUGGER.isDebugEnable()) {                      * DEBUGGER.error("Failed to ftpDownload", e); }                      */                     error("Failed to ftpDownload", e);                 }                 // try {                 // ftpClient.disconnect();                 // } catch (IOException e) {                 // if (DEBUGGER.isDebugEnable()) {                 // DEBUGGER.debug("Failed to ftpDownload", e);                 // }                 // }             }         }     }     /**      * 处理ftp对应文件输入流。      *      * @param ftpClient      *            ftp客户端对象      * @param input      *            ftp文件输入流      * @param list      *            处理完毕的文件列表,用于执行文件删除使用      * @param fileName      *            当前处理的文件名称      */     private void processInput(FTPClient ftpClient, InputStream input, List<String> list, String fileName)     {         if (input == null)         {             return;         }         // boolean downFlag = callingService(input);         callingService(input);         try         {             input.close();             ftpClient.completePendingCommand();             list.add(fileName);         }         catch (Exception e)         {             /*              * DEBUGGER.debug("Failed to ftpDownload", e);              */             error("Failed to ftpDownload", e);         }     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部