用java实现sftp下载,报2: No such file

Python023

用java实现sftp下载,报2: No such file,第1张

String directory = "."

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

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服务启动")

}

}