用java写个连接ftp服务器获取文件的代码
时间: 2024-05-02 21:18:29 浏览: 178
Java连接ftp服务器实例代码
以下是连接FTP服务器获取文件的Java代码示例:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public class FTPExample {
public static void main(String[] args) {
String server = "ftp.example.com";
int port = 21;
String username = "username";
String password = "password";
String remoteFilePath = "/path/to/remote/file.txt";
String localFilePath = "C:/path/to/local/file.txt";
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server, port);
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
InputStream inputStream = ftpClient.retrieveFileStream(remoteFilePath);
FileOutputStream outputStream = new FileOutputStream(localFilePath);
byte[] bytesArray = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(bytesArray)) != -1) {
outputStream.write(bytesArray, 0, bytesRead);
}
boolean success = ftpClient.completePendingCommand();
if (success) {
System.out.println("File has been downloaded successfully.");
}
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在这个示例中,我们使用Apache Commons Net库来连接FTP服务器并获取文件。首先,我们创建一个FTPClient对象并连接到FTP服务器。然后,我们使用login()方法进行身份验证,并使用enterLocalPassiveMode()方法和setFileType()方法设置FTP客户端的传输模式和文件类型。接下来,我们使用retrieveFileStream()方法从FTP服务器获取文件的输入流,并使用FileOutputStream将其写入本地文件。最后,我们使用completePendingCommand()方法完成FTP操作,并使用close()方法关闭输入流和输出流。
请注意,我们还使用了try-with-resources语句来确保资源(例如输入流和输出流)在使用后自动关闭。
阅读全文