Java FTP服务器(例如Apache Commons Net库)允许您通过FTP协议下载文件。以下是一个简单的示例,说明如何使用Java从FTP服务器下载文件:
首先,确保已将Apache Commons Net库添加到项目依赖项中。如果您使用Maven,可以在pom.xml文件中添加以下依赖项:
commons-net commons-net 3.8.0
接下来,编写一个Java程序来下载文件:
import org.apache.commons.net.ftp.FTPClient; import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FTPDownloadExample { public static void main(String[] args) { String server = "ftp.example.com"; // FTP服务器地址 int port = 21; // FTP端口(通常为21) String user = "username"; // FTP用户名 String pass = "password"; // FTP密码 FTPClient ftpClient = new FTPClient(); try { // 连接到FTP服务器 ftpClient.connect(server, port); ftpClient.login(user, pass); ftpClient.enterLocalPassiveMode(); // 设置文件类型为二进制,以防止文件损坏 ftpClient.setFileType(FTP.BINARY_FILE_TYPE); // 要下载的文件名 String remoteFileName = "remote-file.txt"; // 本地保存文件的路径 String localFileName = "local-file.txt"; // 从FTP服务器下载文件 try (BufferedInputStream inputStream = new BufferedInputStream(ftpClient.retrieveFileStream(remoteFileName)); FileOutputStream outputStream = new FileOutputStream(localFileName)) { byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } } System.out.println("文件下载成功: " + localFileName); } catch (IOException ex) { System.out.println("Error downloading file: " + ex.getMessage()); ex.printStackTrace(); } finally { try { // 断开与FTP服务器的连接 if (ftpClient.isConnected()) { ftpClient.logout(); ftpClient.disconnect(); } } catch (IOException ex) { ex.printStackTrace(); } } } }
在这个示例中,我们首先创建一个FTPClient
对象,然后连接到FTP服务器并登录。接着,我们设置文件类型为二进制,以防止在下载过程中损坏文件。然后,我们使用retrieveFileStream()
方法获取文件的输入流,并将其写入到本地文件中。最后,我们断开与FTP服务器的连接。
请注意,您需要根据实际情况替换示例中的服务器地址、端口、用户名、密码和文件名。