当前位置: 首页 > 知识库问答 >
问题:

如何将字符串写入位于远程服务器(linux)中的文件

裴甫
2023-03-14

我试图构建一个小代码,希望在其中创建一些字符串并将该字符串传输到位于远程服务器中的文件(应该在运行时创建)。在我的例子中,远程服务器是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.

抱歉,如果你觉得这很愚蠢,但我对此很陌生。

共有2个答案

钱凌
2023-03-14

@Kenster答案对我不起作用(得到一个0字节的文件),所以我得到了另一个解决方案:

String content = "some text";
InputStream stream = new ByteArrayInputStream (content.getBytes ());

sftpChannel.put (stream, "/some/remote/file");

希望能帮上什么忙...

汤英豪
2023-03-14

ChannelSftp有put方法的版本,它接受远程系统上的文件名,并返回OutputStream。写入OutputStream的任何内容都会写入远程系统上的文件。您可以将二进制数据写入OutputStream,如果您想将文本写入OutputStream,则可以将其转换为Writer:

try (OutputStream out = channelSftp.put("/some/remote/file")) {
    OutputStreamWriter writer = new OutputStreamWriter(out);
    writer.write("some text");
} catch (IOException e) {
    ....
}
 类似资料:
  • 问题内容: 我正在编写一个Java套接字程序来从服务器读取数据,我无法控制服务器,以下是协议的约定, 2字节:幻数 2字节:数据长度 N字节:ASCII字符串数据有效载荷 大尾数表示幻数和数据长度 例如:如果我的请求是“ command / 1 / getuserlist”,如何构造以上协议的请求匹配并将响应读回到List 我是套接字编程的新手,也不知道如何构建我的请求并读回响应。 有人可以指导我

  • 问题内容: 我将日志保存到sdcard上的.txt文件中,但是一旦保存了两行,它就会覆盖它并重新开始? 这是我的代码: 在恢复中挂载/ data后,/ sdcard和/ data / media / 0中的日志文件会显示完整的日志历史记录,但在设备开机时不会显示完整的日志历史记录 问题答案: 这是完成的方式。以下示例代码在单击提交按钮后将详细信息保存到文件中: 希望这可以帮助 :)

  • wef:使用apache poi写入xlsm(Excel 2007) 当我向文件中写入一个简单的字符串时,我无法打开该文件。错误-“Excel无法打开文件“Test1.xlsm”,因为文件格式或文件扩展名无效”

  • 问题内容: 这是我必须发布的json字符串… 如何发布为JSON? 问题答案: 当然,这是一个重复的问题,但这是完整的示例代码,作为一个长例程。只需复制并粘贴。 首先设置JSON … 接下来,正确异步地将命令和json发送到您的服务器… 最后,(A)使用NSURLConnection正确连接,(B)正确解释从服务器返回给您的信息。 希望它可以节省一些键入的时间!

  • 问题内容: 我已将文件读入字符串。该文件包含各种名称,每行一个名称。现在的问题是,我希望将这些名称放在String数组中。 为此,我编写了以下代码: 但是我没有得到预期的结果,分割字符串后获得的数组长度为1。这意味着“ fileString”不具有“ \ n”字符,但是文件具有此“ \ n”字符。 那么如何解决这个问题呢? 问题答案: 问题不在于如何分割字符串。那一点是正确的。 您必须查看如何将文

  • 问题内容: 我一直在尝试使用以下方法将远程服务器中的一些选定文件(在执行几次检查后)复制到同一台远程服务器中: 我什至尝试使用该方法将那些选定的文件复制到本地计算机。 有人可以帮忙吗? 问题答案: 核心SFTP协议不支持复制远程文件。 该协议有扩展草案,但只有少数SFTP服务器(例如ProFTPD / mod_sftp 和Bitvise SFTP服务器)支持该协议。 JSch库也不支持该扩展。 备