java jsch example_如何使用Java JSch库逐行读取远程文件?

我想用Java来逐行读取一个文件,这很简单(在stackoverflow.com上有多个解决方案),但是这里需要注意的是该文件位于远程服务器上,是不可能获得本地副本(这是在单个.txt文件中的数百万亚马逊评论的大量集合)。如何使用Java JSch库逐行读取远程文件?

JSch附带两个将文件复制到远程主机或从远程主机复制文件的示例类,即ScpTo和ScpFrom。我对从远程主机逐行读取文件感兴趣; ScpFrom会尝试将整个事件复制到本地文件中,这需要很长时间。

我想尝试货物邪教代码那里,然后修改它以逐行读取远程文件行而不是写入到本地文件,但大部分代码一旦作者声明了一个字节数组并开始从远程文件中读取字节,就是希腊语。我承认这是我几乎不了解的东西; BufferedReader提供了一个更高层次的接口。本质上我想这样做:How to read a large text file line by line using Java?

除了使用一个BufferReader,也可以逐行读取远程文件,如果提供的主机名和用户凭证(密码等),即RemoteBufferReader?

这是我写的测试代码;我如何使用JSCh逐行读取远程文件?

public class test2

{

static String user = "myusername";

static String host = "[email protected]";

static String password = "mypasswd";

static String rfile = "/path/to/remote/file/on/remote/host";

public static void main(String[] args) throws FileNotFoundException, IOException, JSchException

{

JSch jsch=new JSch();

Session session=jsch.getSession(user, host, 22);

session.setPassword(password);

session.connect();

// exec 'scp -f rfile' remotely

String command="scp -f "+rfile;

Channel channel=session.openChannel("exec");

((ChannelExec)channel).setCommand(command);

// get I/O streams for remote scp

OutputStream out=channel.getOutputStream();

channel.connect()

//no idea what to do next

}

}

+0

我会使用'cat'(在远程主机上)而不是'scp'。然后只需读取命令行的标准输出。 –

2014-09-04 05:10:39

+1

你可以使用jsch通过sftp打开一个输入流,然后逐行读取 –

2014-09-04 06:13:55

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值