вам нужно использовать inputStream, чтобы получить файл с сервера и поместить его снова, в моем случае я использовал текущий код, я не использовал номер порта для аутентификации:
private ChannelSftp setupJsch(String host, String username, String password) {
JSch jsch = new JSch();
//jsch.setKnownHosts(knownHosts);
Session jschSession;
try {
jschSession = jsch.getSession(username, host);
jschSession.setPassword(password);
//extra config code
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
jschSession.setConfig(config);
jschSession.connect();
return (ChannelSftp) jschSession.openChannel("sftp");
} catch (JSchException e) {
}
return null;
}
private InputStream getInputStream(String host,
String username, String password,String pdfFromIN) {
InputStream in = null;
ChannelSftp channelSftp;
try {
channelSftp = setupJsch(host, username, password);
channelSftp.connect();
in=channelSftp.get(pdfFromIN);
} catch (JSchException |SftpException e) {
}
//channelSftp.exit();
return in;
}
private void putFile(String host,
String username, String password,InputStream in,String desFileRepo){
ChannelSftp channelSftp;
try {
channelSftp = setupJsch(host, username, password);
channelSftp.connect();
channelSftp.put(in, desFileRepo);
channelSftp.exit();
} catch (JSchException |SftpException e) {
;
}
}