//文件scp到数据服务器 Connection conn = new Connection(mllogServerHost); Session session = null; System.out.println("连接开始"); try { conn.connect(); boolean isAuthenticated = conn.authenticateWithPassword(mllogServerUsername, mllogServerPassword); if (isAuthenticated == false) throw new IOException("用户认证失败"); //执行远程命令,成功 session = conn.openSession(); session.execCommand("ls -p " + path);//分号隔开执行多条指令 //显示执行命令后的信息 InputStream stdout = new StreamGobbler(session.getStdout()); BufferedReader br = new BufferedReader(new InputStreamReader(stdout)); ArrayList<String> list = new ArrayList<>(); while (true) { String line = br.readLine(); if (line == null) { break; } list.add(line); }
StreamGobbler的作用是把session的标准输出包装成InputStream,用于接收目标服务器上的控制台返回结果,读取br中的内容。然后在循环中,把每一行的内容添加到StringBuffer里面。