Java运用FTP下载文件ITeye - 牛牛娱乐

Java运用FTP下载文件ITeye

2019-01-10 12:52:13 | 作者: 元瑶 | 标签: 服务器,成功,衔接 | 浏览: 1037

public static boolean downloadFile(String hostname, int port, String username, String password, String pathname, String filename, String localPath) { boolean flag = false; FTPClient ftpClient = new FTPClient(); //传输的字符编码(防乱码) ftpClient.setControlEncoding("UTF-8"); //超时时刻(避免FTP僵死) ftpClient.setConnectTimeout(1000 * 60); ftpClient.setDataTimeout(1000 * 60); ftpClient.setDefaultTimeout(1000 * 60); //工作流的巨细 ftpClient.setBufferSize(1024 * 4); // 被动模式 ftpClient.enterLocalPassiveMode(); try { // 衔接FTP服务器 ftpClient.connect(hostname, port); // 登录FTP服务器 ftpClient.login(username, password); // 验证FTP服务器是否登录成功 int replyCode = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(replyCode)) { _log.error("Failed to login"); return flag; // 切换FTP目录 ftpClient.changeWorkingDirectory(pathname); FTPFile[] ftpFiles = ftpClient.listFiles(); _log.info("File number:" + ftpFiles.length); for (FTPFile file : ftpFiles) { if (filename.equalsIgnoreCase(file.getName())) { File localFile = new File(localPath + "/" + file.getName()); OutputStream os = new FileOutputStream(localFile); _log.info("begin to download file ------------------"); ftpClient.retrieveFile(file.getName(), os); _log.info("finished !!!"); os.close(); ftpClient.logout(); flag = true; } catch (Exception e) { _log.error(e); } finally { if (ftpClient.isConnected()) { try { ftpClient.logout(); } catch (IOException e) { return flag; public static void main(String[] args) { // FTP server account info String hostname = "192.168.1.2"; int port = 21; String username = "test"; String password = "abc"; // download file info in FTP server String pathname = "filePath"; String filename = "file.zip"; // location for downloaded file in local String localpath = "C:/Data"; downloadFile(hostname, port, username, password, pathname, filename, localpath);

开发过程中遇到一个问题,一开始server衔接成功了,server上文件途径也没有问题,但是ftpClient.listFiles()一直回来empty,后来加上ftpClient.enterLocalPassiveMode();后才履行成功了。

参阅:
https://blog.csdn.net/cainiao_ACCP/article/details/71394891
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1
  • 2

    Java运用FTP下载文件ITeye

    服务器,成功,衔接
  • 3

    java多线程(七)ITeye

    线程,倾向,目标
  • 4

    java线程池ITeye

    线程,使命,工人
  • 5
  • 6
  • 7

    修饰符ITeye

    润饰,能够,直接
  • 8
  • 9
  • 10

    第02章 根底中心ITeye

    目标,根底,中心