ftp实时同步java_Java8实现FTP及SFTP文件上传下载

本文介绍了使用Java 8的内置API和Jsch库分别实现FTP和SFTP文件的上传与下载。针对FTP,通过Java的FtpClient连接服务器并进行文件操作;对于SFTP,通过JSch创建Session并打开SFTP通道,进行文件传输。文中还对比了FTP和SFTP的区别,推荐使用SFTP以保证安全性和便捷性。
摘要由CSDN通过智能技术生成

有网上的代码,也有自己的理解,代码备份

一般连接windows服务器使用FTP,连接linux服务器使用SFTP。linux都是通过SFTP上传文件,不需要额外安装,非要使用FTP的话,还得安装FTP服务(虽然刚开始我就是这么干的)。

另外就是jdk1.8和jdk1.7之前的方法有些不同,网上有很多jdk1.7之前的介绍,本篇是jdk1.8的

添加依赖Jsch-0.1.54.jar

com.jcraft

jsch

0.1.54

FTP上传下载文件例子

import sun.net.ftp.FtpClient;

import sun.net.ftp.FtpProtocolException;

import java.io.*;

import java.net.InetSocketAddress;

import java.net.SocketAddress;

/**

* Java自带的API对FTP的操作

*/

public class Test {

private FtpClient ftpClient;

Test(){

/*

使用默认的端口号、用户名、密码以及根目录连接FTP服务器

*/

this.connectServer("192.168.56.130", 21, "jiashubing", "123456", "/home/jiashubing/ftp/anonymous/");

}

public void connectServer(String ip, int port, String user, String password, String path) {

try {

/* ******连接服务器的两种方法*******/

ftpClient = FtpClient.create();

try {

SocketAddress addr = new InetSocketAddress(ip, port);

ftpClient.connect(addr);

ftpClient.login(user, password.toCharArray());

System.out.println("login success!");

if (path.length() != 0) {

//把远程系统上的目录切换到参数path所指定的目录

ftpClient.changeDirectory(path);

}

} catch (FtpProtocolException e) {

e.printStackTrace();

}

} catch (IOException ex) {

ex.printStackTrace();

throw new RuntimeException(ex);

}

}

/**

* 关闭连接

*/

public void closeConnect() {

try {

ftpClient.close();

Syste

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值