使用Java连接Ftp并且实现文件的上传下载

1.使用maven工程的话需要引入Maven的pom

        <!--连接ftp使用--><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.3</version></dependency><!--打印日志使用--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version></dependency>

2.使用Java代码实现连接

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.*;
import java.net.SocketException;/*** @wsh* 实现连接FTP服务器,实现文件的上传和下载*/
public class FtpUtils {//打印日志使用private static final Logger log = LoggerFactory.getLogger(FtpUtils.class);/*** 获取FTPClient对象** @param ftpHost*            FTP主机服务器* @param ftpPassword*            FTP 登录密码* @param ftpUserName*            FTP登录用户名* @param ftpPort*            FTP端口 默认为21* @return*/public static FTPClient getFTPClient(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort) {FTPClient ftpClient = null;try {//创建一个ftp客户端ftpClient = new FTPClient();// 连接FTP服务器ftpClient.connect(ftpHost, ftpPort);// 登陆FTP服务器ftpClient.login(ftpUserName, ftpPassword);if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {log.info("未连接到FTP,用户名或密码错误。");ftpClient.disconnect();} else {log.info("FTP连接成功。");}} catch (SocketException e) {e.printStackTrace();log.info("FTP的IP地址可能错误,请正确配置。");} catch (IOException e) {e.printStackTrace();log.info("FTP的端口错误,请正确配置。");}return ftpClient;}/*** 下载文件** @param ftpHost ftp服务器地址* @param ftpUserName anonymous匿名用户登录,不需要密码。administrator指定用户登录* @param ftpPassword 指定用户密码* @param ftpPort ftp服务员器端口号* @param ftpPath  ftp文件存放物理路径* @param localPath 本地存储文件的路径* @param fileName 文件名称*/public static void downloadFile(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort, String ftpPath, String localPath, String fileName) {FTPClient ftpClient = null;try {ftpClient = getFTPClient(ftpHost, ftpUserName, ftpPassword, ftpPort);ftpClient.setControlEncoding("UTF-8"); // 中文支持ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);ftpClient.enterLocalPassiveMode();ftpClient.changeWorkingDirectory(ftpPath);File localFile = new File(localPath + File.separatorChar + fileName);OutputStream os = new FileOutputStream(localFile);ftpClient.retrieveFile(fileName, os);os.close();ftpClient.logout();} catch (FileNotFoundException e) {log.error("没有找到" + ftpPath + "文件");e.printStackTrace();} catch (SocketException e) {log.error("连接FTP失败.");e.printStackTrace();} catch (IOException e) {e.printStackTrace();log.error("文件读取错误。");e.printStackTrace();}}/*** 上传文件** @param ftpHost ftp服务器地址* @param ftpUserName anonymous匿名用户登录,不需要密码。administrator指定用户登录* @param ftpPassword 指定用户密码* @param ftpPort ftp服务员器端口号* @param ftpPath  ftp文件存放物理路径* @param fileName 文件路径* @param input 文件输入流,即从本地服务器读取文件的IO输入流*/public static void uploadFile(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort, String ftpPath, String fileName,InputStream input){FTPClient ftp=null;try {ftp=getFTPClient(ftpHost, ftpUserName, ftpPassword, ftpPort);ftp.makeDirectory(ftpPath);ftp.changeWorkingDirectory(ftpPath);ftp.setFileType(FTP.BINARY_FILE_TYPE);fileName=new String(fileName.getBytes("GBK"),"iso-8859-1");ftp.storeFile(fileName, input);input.close();ftp.logout();System.out.println("upload succes!");} catch (Exception e) {e.printStackTrace();}}
}

java连接ftp服务器相关推荐

  1. Java连接FTP服务器并且实现对其文件的上传和下载

    概述 FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".FTP作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用.F ...

  2. 使用java连接ftp服务器_Java如何连接到FTP服务器?

    文件传输协议(FTP)是一种标准的网络协议,用于在计算机网络上的客户端和服务器之间传输计算机文件.下面的示例向您显示如何连接到FTP服务器. 在此示例中,我们使用FTPClientApache Com ...

  3. java链接ftp_java_Java连接ftp服务器实例代码,废话不多说了,直接给大家贴j - phpStudy...

    Java连接ftp服务器实例代码 废话不多说了,直接给大家贴java代码了. import java.io.IOException; import sun.net.TelnetInputStream; ...

  4. java ftp 文件移动文件_通过JAVA对FTP服务器连接,上传,下载,读取,移动文件等...

    记录一次对FTP服务器文件内容 通过Java程序对FTP服务器文件处理:连接,上传,下载,读取,移动文件等. 需求描述:今天接到一个任务,在Java项目中,读取FTP服务器上的一些文件,进行一些业务操 ...

  5. Java通过FTP服务器上传下载文件的方法

    本文介绍了如何使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作 ...

  6. springboot连接ftp服务器

    1.引入pom文件 <!-- ftp --><dependency><groupId>commons-net</groupId><artifact ...

  7. ftp读取服务器文件是否存在,java读取ftp服务器文件是否存在

    java读取ftp服务器文件是否存在 内容精选 换一换 弹性云服务器通过SNAT访问公网上服务器,出现TCP建链失败的情况,可通过以下方法进行排查.执行以下命令,查看远端服务器是否开启了"t ...

  8. JAVA读取FTP服务器文件内容

    import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.a ...

  9. 直接读取ftp服务器文件,java读取ftp服务器文件

    java读取ftp服务器文件 [2021-02-05 07:08:30]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  10. java获取ftp服务器文件,java获取ftp服务器文件

    java获取ftp服务器文件 [2021-02-05 07:26:23]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

最新文章

  1. 不要只是为您的代码做些毛-用Prettier修复它
  2. 抱怨IT公司人才缺乏?留住现有人才方是正途
  3. 这种扯淡的嵌入式项目,尽量不要碰
  4. gephi 使用mysql数据,gephi练习数据
  5. 苹果正研发类似亚马逊Echo设备 Sir更加智能化
  6. java 读取manifest_使用JAVA从jar文件读取MANIFEST.MF文件
  7. windows 网络编程报错 error LNK2019
  8. Menu菜单资源Android
  9. python3.8编程实例_Python3.8动态人脸识别实例
  10. luogu p1652 圆
  11. 树莓派进阶之路 (023) - Windows下用串行连接控制树莓派(转)
  12. Android是如何绘制View的
  13. 揭秘ServerBootstrap神秘面纱(服务端ServerBootstrap)
  14. 基于springboot的房屋租赁系统
  15. matlab各种文件读写,Matlab的各种数据读取、文件读写等操作汇总
  16. 迷你世界勒索病毒,你的文件被删了吗?
  17. 计算机酷炫桌面,电脑桌面还能这么酷炫?!打破次元壁的桌面管理软件
  18. 解密DB2独步江湖之五大法宝
  19. oracle comment语法,oracle 之 COMMENT
  20. 微信小程序 | canvas为你的天气预报添加雨雪效果

热门文章

  1. 企企通SRM:时尚服装品牌企业建立优质供应链体系,只需要做到这几步
  2. 根据主题不同,引用不同的资源文件
  3. telegram接入微信
  4. vrep和matlab,使用Matlab与V-REP联合仿真 - Play V-REP with Matlab
  5. 并发网站压力测试工具
  6. 概率论 计算机论文,《概率论与数理统计》毕业论文
  7. Untiy3D里用C#做出连线题目~
  8. jeesit1.27(3)-id生成策略
  9. Litjson快速入门
  10. GPS固定数据输出语句($GPGGA)