java FTP下载文件在代码中如何实现知道下载完成?

java FTP下载文件在代码中如何实现知道下载完成?,第1张

public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){

try {

String ftpHost = kmConfig.getFtpHost()

int port = kmConfig.getFtpPort()

String userName = kmConfig.getFtpUser()

String passWord = kmConfig.getFtpPassword()

String path = kmConfig.getFtpPath()

FtpClient ftpClient = new FtpClient(ftpHost, port)// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord)// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary()

ftpClient.cd(path)// path为FTP服务器上保存上传文件的路径。

try {

TelnetInputStream in = ftpClient.get(fileName)

byte[] bytes = new byte[1024]

int cnt=0

while ((cnt=in.read(bytes,0,bytes.length)) != -1) {

outputStream.write(bytes, 0, cnt)

}

//##############################################

//这里文件就已经下载完了,自己理解一下

//#############################################

outputStream.close()

in.close()

} catch (Exception e) {

ftpClient.closeServer()

e.printStackTrace()

}

ftpClient.closeServer()

} catch (Exception e) {

System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动")

}

}

String directory = "."

目测 /home/httpd/test/ 是*nix的路径,而你用的是Windows,一来,没有这个目录,二来SFTP服务器分配的目录应该也不是这个,所以改".",即当前目录试试,如果不行就留空,或者改"/"

这个要做定时任务的,ftp不可能主动给你发,只能自己每隔多长时间就去检索一次,应该把ftp文件目录结构和文件名称全部存入数据库,在下载时候对文件的标识状态位进行更新,方便于对文件的判断。然后从ftp下载文件即可。如果需要连接ftp下载文件的代码,可以发送邮件到JavaWebDevelop@hotmial.com


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11851577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存