Java实现FTP批量大文件上传下载篇1攻略
1. FTP简介
FTP (File Transfer Protocol)即文件传输协议,是一个用户间传输文件的标准协议,基于客户端-服务端模式运作,被广泛应用于文件共享、网站更新等领域。FTP协议默认的传输端口是21,支持主动模式和被动模式两种连接方式。
2. 使用Java实现FTP文件上传下载
Java提供了org.apache.commons.net包来支持FTP客户端的实现,包括文件上传、下载、删除、重命名等操作。以下是实现FTP文件上传下载的步骤:
2.1 连接FTP服务器
使用FTPClient类连接FTP服务器。首先需要使用FTPClient的connect方法连接FTP服务器,并使用login方法登录FTP服务器。如下所示:
FTPClient ftp = new FTPClient();
ftp.connect(server, port);
ftp.login(username, password);
2.2 上传文件
使用FTPClient的storeFile方法上传文件。该方法需要传入远程目录及文件名,以及本地文件流。如下所示:
InputStream input = new FileInputStream(localFilePath);
boolean success = ftp.storeFile(remoteFilePath, input);
input.close();
if(success){
System.out.println("文件上传成功");
}
2.3 下载文件
使用FTPClient的retrieveFile方法下载文件。该方法需要传入远程文件路径及文件名,以及本地文件流。如下所示:
OutputStream out = new FileOutputStream(localFilePath);
boolean success = ftp.retrieveFile(remoteFilePath, out);
out.close();
if(success){
System.out.println("文件下载成功");
}
3. 示例
以下是两个示例,分别实现FTP文件上传和下载:
3.1 上传示例
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
public class FTPUploadDemo {
public static void main(String[] args) {
String server = "192.168.1.10";
int port = 21;
String username = "username";
String password = "password";
String localFilePath = "/path/to/local/file.txt";
String remoteFilePath = "/path/to/remote/file.txt";
FTPClient ftp = new FTPClient();
try {
ftp.connect(server, port);
boolean loginSuccess = ftp.login(username, password);
if (!loginSuccess) {
System.err.println("FTP登录失败,请检查用户名密码是否正确");
return;
}
FileInputStream input = new FileInputStream(localFilePath);
boolean success = ftp.storeFile(remoteFilePath, input);
input.close();
if (success) {
System.out.println("文件上传成功");
} else {
System.err.println("文件上传失败");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
3.2 下载示例
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
public class FTPDownloadDemo {
public static void main(String[] args) {
String server = "192.168.1.10";
int port = 21;
String username = "username";
String password = "password";
String remoteFilePath = "/path/to/remote/file.txt";
String localFilePath = "/path/to/local/file.txt";
FTPClient ftp = new FTPClient();
try {
ftp.connect(server, port);
boolean loginSuccess = ftp.login(username, password);
if (!loginSuccess) {
System.err.println("FTP登录失败,请检查用户名密码是否正确");
return;
}
FileOutputStream out = new FileOutputStream(localFilePath);
boolean success = ftp.retrieveFile(remoteFilePath, out);
out.close();
if (success) {
System.out.println("文件下载成功");
} else {
System.err.println("文件下载失败");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
以上两个示例中,变量server、port、username、password、localFilePath、remoteFilePath需要根据实际情况修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现FTP批量大文件上传下载篇1 - Python技术站