功能:读取远程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...
get
是一个重载方法, 在库中提供了如下函数 get(String remoteFile, OutputStream target)