我需要将字符串内容放在远程文件中。
理想情况下,我曾经在本地创建一个文件,然后将该文件传输到远程机器。
以下是我用来将文件复制到远程的代码段。
ChannelSftp sftpChannel = (ChannelSftp) channel;
File file = new File(filePathWithName);//To read the file in local machine
try {
sftpChannel.cd(location);//Remote location
//Transferring the file to RemoteLocation.
sftpChannel.put(new FileInputStream(file), file.getName());//.(Here I don't want read a file.) //Instead I want copy a content which is in string variable, something like below two lines, to the remote location.
String content = "abcdefg";
sftpChannel.put(content,"someFileName")
} catch (SftpException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
sftpChannel.exit();
是否有任何参考或文档可以克服在本地读取文件以在远程计算机中创建文件。
- 谢谢你
答案 0 :(得分:1)
如果我正确理解您的问题,您希望能够将一些字符串数据复制到远程计算机而无需在本地读取文件。如果您查看javadoc,put
接受InputStream
。所以你这样做:
InputStream stream = new ByteArrayInputStream(content.getBytes());
sftpChannel.put(stream, "name.txt");
请注意,您还可以put(String dst)
在其中写入返回的OutputStream
。但我没有表现出来。