packagecom.longyg.sftp;importjava.io.FileOutputStream;importjava.io.OutputStream;importjava.util.HashMap;importjava.util.Map;importcom.jcraft.jsch.ChannelSftp;importcom.jcraft.jsch.SftpATTRS;public classSFTPGetTest {publicSFTPChannel getSFTPChannel() {return newSFTPChannel();
}public static void main(String[] args) throwsException {
SFTPGetTest test= newSFTPGetTest();
Map sftpDetails = new HashMap();//设置主机ip,端口,用户名,密码
sftpDetails.put(SFTPConstants.SFTP_REQ_HOST, "10.9.167.55");
sftpDetails.put(SFTPConstants.SFTP_REQ_USERNAME,"root");
sftpDetails.put(SFTPConstants.SFTP_REQ_PASSWORD,"arthur");
sftpDetails.put(SFTPConstants.SFTP_REQ_PORT,"22");
SFTPChannel channel=test.getSFTPChannel();
ChannelSftp chSftp= channel.getChannel(sftpDetails, 60000);
String filename= "/home/omc/ylong/sftp/INTPahcfg.tar.gz";
SftpATTRS attr=chSftp.stat(filename);long fileSize =attr.getSize();
String dst= "D:\\INTPahcfg.tar.gz";
OutputStream out= newFileOutputStream(dst);try{
chSftp.get(filename, dst,new FileProgressMonitor(fileSize)); //代码段1//chSftp.get(filename, out, new FileProgressMonitor(fileSize));//代码段2
/*** 代码段3
*
InputStream is = chSftp.get(filename, new MyProgressMonitor());
byte[] buff = new byte[1024 * 2];
int read;
if (is != null) {
System.out.println("Start to read input stream");
do {
read = is.read(buff, 0, buff.length);
if (read > 0) {
out.write(buff, 0, read);
}
out.flush();
} while (read >= 0);
System.out.println("input stream read done.");
}*/}catch(Exception e) {
e.printStackTrace();
}finally{
chSftp.quit();
channel.closeChannel();
}
}
}