我试图构建一个小代码,在其中创建一些字符串并将该字符串传输到位于远程服务器中的文件(应在运行时创建)。就我而言,远程服务器是 Linux。
有人可以帮我吗?我正在使用 JSCH 和 ChannelSftp 但无法执行此操作。下面是我的代码:
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER, MachineIP, SFTPPORT);
String str = "Hello";
session.setPassword(SFTPPASS);
System.out.println(SFTPPASS);
java.util.Properties config = new java.util.Properties();
System.out.println("Config done");
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
System.out.println("Config set");
session.connect();
System.out.println("Session connected");
channel = session.openChannel("sftp");
channel.connect();
System.out.println("Connection Opened\n");
channelSftp = (ChannelSftp) channel;
channelSftp.cd(SFTPWORKINGDIR);
File f=new File("Test.txt");
//unable to do anything beyond this.
抱歉,如果您觉得这很愚蠢,但我对此很陌生。
频道Sftp http://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/ChannelSftp.html有以下版本放置方法 http://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/ChannelSftp.html#put(java.lang.String)它接受远程系统上的文件名并返回输出流 https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html。写入 OutputStream 的任何内容都会写入远程系统上的文件。您可以将二进制数据写入 OutputStream,或者如果您想向其中写入文本,则将其转换为 Writer:
try (OutputStream out = channelSftp.put("/some/remote/file")) {
OutputStreamWriter writer = new OutputStreamWriter(out);
writer.write("some text");
} catch (IOException e) {
....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)