从Scala访问FTP文件需要使用第三方库,例如Apache Commons Net。以下是一个简单的示例代码,展示如何使用Apache Commons Net库从FTP服务器下载文件:
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.8.0</version>
</dependency>
import org.apache.commons.net.ftp.FTPClient
object FtpDownload {
def main(args: Array[String]): Unit = {
val ftpHost = "ftp.example.com"
val ftpUsername = "username"
val ftpPassword = "password"
val remoteFilePath = "/remote/file/path.txt"
val localFilePath = "/local/file/path.txt"
val ftpClient = new FTPClient()
try {
ftpClient.connect(ftpHost)
ftpClient.login(ftpUsername, ftpPassword)
ftpClient.enterLocalPassiveMode()
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE)
val outputStream = new FileOutputStream(localFilePath)
ftpClient.retrieveFile(remoteFilePath, outputStream)
outputStream.close()
println("File downloaded successfully.")
} catch {
case e: Exception =>
println("Error while downloading file: " + e.getMessage)
} finally {
if (ftpClient.isConnected) {
ftpClient.logout()
ftpClient.disconnect()
}
}
}
}
在上面的代码中,我们首先创建了一个FTPClient对象,然后连接到FTP服务器,登录并进入被动模式。接着,我们设置文件类型为二进制,并使用retrieveFile方法从FTP服务器下载文件到本地文件系统。最后,我们关闭FTP连接。
需要注意的是,这个示例代码仅供参考,实际使用时需要根据具体情况进行修改。例如,可以根据需要更改FTP服务器的主机名、用户名和密码,以及远程和本地文件路径。
领取专属 10元无门槛券
手把手带您无忧上云