You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sshj库将CSV字节串写入SFTP服务器且无需本地文件?

使用sshj直接将CSV字节串写入SFTP服务器的可行方案

完全不需要更换库,sshj的SFTPClient其实提供了支持InputStream的put重载方法,只是你可能没留意到。具体实现步骤如下:

  • 将CSV字节串转换成ByteArrayInputStream(内存流,无需本地文件)
  • 调用SFTPClient.put(InputStream, String)方法直接写入远程SFTP路径

示例代码:

import net.schmizz.sshj.sftp.SFTPClient;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.io.IOException;

// 假设已完成SFTP连接初始化,得到有效的SFTPClient实例
SFTPClient sftpClient = ...; 

String csvString = "你要写入的CSV内容,比如字段1,字段2,字段3\n值1,值2,值3";
byte[] csvBytes = csvString.getBytes(StandardCharsets.UTF_8);

try (InputStream inputStream = new ByteArrayInputStream(csvBytes)) {
    // 替换为SFTP服务器上的目标文件路径
    sftpClient.put(inputStream, "/remote/directory/target.csv");
} catch (IOException e) {
    // 根据业务场景处理异常,比如日志记录、告警等
    e.printStackTrace();
}

补充说明

这个put方法的签名是void put(InputStream src, String dst),属于SFTPClient的标准重载方法,只要你的sshj版本不是过于陈旧(比如0.10.x之前的极老版本),都应该支持该方法。如果不确定版本,可以检查依赖的jar包版本,建议使用0.27.0及以上的稳定版。

内容的提问来源于stack exchange,提问作者user3008362

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:14:55