要讀取FTP上的文件,您可以使用Java的FTP客戶端庫,如Apache Commons Net庫。以下是一個示例代碼,演示如何使用Apache Commons Net連接到FTP服務器并讀取文件:
首先,您需要在項目中導入Apache Commons Net庫。您可以從官方網站上下載并將其添加到項目的依賴項中。
接下來,您可以使用以下代碼連接到FTP服務器并讀取文件:
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class FTPExample {
public static void main(String[] args) {
String server = "ftp.example.com";
int port = 21;
String username = "your-username";
String password = "your-password";
String remoteFile = "/path/to/remote-file.txt";
String localFile = "local-file.txt";
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server, port);
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
OutputStream outputStream = new FileOutputStream(localFile);
boolean success = ftpClient.retrieveFile(remoteFile, outputStream);
outputStream.close();
if (success) {
System.out.println("File downloaded successfully.");
} else {
System.out.println("File download failed.");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在上面的示例代碼中,您需要替換以下變量的值:
server
:FTP服務器的主機名或IP地址。port
:FTP服務器的端口號(通常為21)。username
:用于登錄的FTP用戶名。password
:用于登錄的FTP密碼。remoteFile
:要從FTP服務器讀取的遠程文件的路徑。localFile
:將遠程文件保存到本地的路徑。在代碼中,我們首先創建一個FTPClient
對象,然后使用connect
方法連接到FTP服務器。接下來,我們使用login
方法進行身份驗證,并使用enterLocalPassiveMode
方法進入被動模式。然后,我們使用setFileType
方法設置文件類型為二進制。然后,我們創建一個FileOutputStream
來保存下載的文件,并使用retrieveFile
方法從FTP服務器下載文件。最后,我們使用logout
和disconnect
方法斷開與FTP服務器的連接。