远程读取Linux服务器上的文件内容

流程图

sequenceDiagram
    小白->>开发者: 请求帮助
    开发者-->>小白: 确认问题
    开发者->>小白: 教学

步骤

步骤 操作
1 连接到Linux服务器
2 读取文件内容
3 关闭连接

操作说明

  1. 连接到Linux服务器
// 引入JSch包,用于SSH连接
import com.jcraft.jsch.*;

public class ReadFileFromServer {
    public static void main(String[] args) {
        try {
            JSch jsch = new JSch();
            String user = "username";
            String host = "hostname";
            String password = "password";
            Session session = jsch.getSession(user, host, 22);
            session.setPassword(password);
            session.setConfig("StrictHostKeyChecking", "no");
            session.connect();
            System.out.println("Connected");
        } catch (JSchException e) {
            e.printStackTrace();
        }
    }
}
  1. 读取文件内容
// 使用SSH执行命令
Channel channel = session.openChannel("exec");
((ChannelExec)channel).setCommand("cat /path/to/file.txt");
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in = channel.getInputStream();
channel.connect();

byte[] tmp = new byte[1024];
while (true) {
    while (in.available() > 0) {
        int i = in.read(tmp, 0, 1024);
        if (i < 0) break;
        System.out.print(new String(tmp, 0, i));
    }
    if (channel.isClosed()) {
        if (in.available() > 0) continue;
        System.out.println("Exit status: " + channel.getExitStatus());
        break;
    }
}

channel.disconnect();
  1. 关闭连接
session.disconnect();

结尾

通过以上步骤,你可以成功实现在Java中远程读取Linux服务器上的文件内容。希望这篇文章对你有所帮助,如果有任何疑问,请随时向我提问。祝你在开发的道路上越走越远!