有网上的代码,也有自己的理解,代码备份
一般连接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