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

流程图

开发者 小白 开发者 小白 请求帮助 确认问题 教学

步骤

步骤操作
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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  1. 关闭连接
session.disconnect();
  • 1.

结尾

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