为了账号安全,请及时绑定邮箱和手机立即绑定

java读取远程服务器文件

java读取远程服务器文件

长风秋雁 2019-01-18 07:24:03
功能:读取远程linux服务器上指定目录下的文件内容。已知:服务器IP、端口号、用户名、密码、路径、文件名。我使用的是ssh2方式,建立连接,然后只能做到上传或者取文件,代码如下: Connection con = new Connection("IP地址"); ConnectionInfo connect = con.connect(); boolean isAuthed = con.authenticateWithPassword("用户名", "密码"); SCPClient scpClient = con.createSCPClient(); //从服务器获取文件 scpClient.get("/home/test /a.txt", "C:/test/b.txt"); //将本地文件上传到服务器 scpClient.put("C:/test/c.txt", "/home /test/d.txt"); 然后我查询后发现可以通过会话执行Linux命令,代码如下: Session session = con.openSession(); //服务器文件移动并改名 session.execCommand("mv -f /home/test/a.txt /home/test2/b.txt"); //从服务复制文件到本地(下载)并改名 session.execCommand("scp root@192.168.1.1:/home/test/a.txt /home/test2/b.txt"); //从本地复制文件到服务器(上传)并改名 session.execCommand("scp /home/test2/b.txt root@192.168.1.1:/home/test/a.txt"); 但是我无法知道如何进行文件读取,因为我只需要读取文件,在不下载到本地的情况下,直接读取到内存里执行内容处理,请大神指教。 使用jar包是svnkit-1.9.0-r10609-atlassian-hosted.jar。参考的是这个博客说明,在这个基础上根据自己的情况改了一些,大致和这个说明一致。JAVA代码实现远程服务器的文件操作 - CSDN博客https://blog.csdn.net/tao_ssh...
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超13个赞

get 是一个重载方法, 在库中提供了如下函数 get(String remoteFile, OutputStream target)

ByteArrayOutputStream baos = new ByteArrayOutputStream();
scpClient.get("/home/test /a.txt", baos);

// baos.toByteArray(); // 在内存中的文件字节流
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); // 读取文件字节流
查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 2409 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号