繁体   English   中英

如何获取远程linux服务器文件输入流

[英]how to get remote linux server file inputstream

我正在尝试读取远程linux服务器中的文件。 但我不知道如何使用java获取文件的输入流。

如何才能做到这一点?

假设“ 远程linux服务器 ”是指“ 远程linux shell ”,你应该使用像JSch这样的ssh库。 您可以在此处找到文件下载示例。

假设您与服务器有连接并访问该文件,您可以使用该File的URI创建一个File对象:

File f = new File(uri);
FileInputStream fis = new FileInputStream(f);

URI应该是文件的URI,例如“file:// server / path / to / file”。 另请参阅Javadoc for File(URI)

也许SSHJ可以帮到你? https://github.com/shikhar/sshj

该图书馆的特色包括:

  • 读取known_hosts文件以进行主机密钥验证
  • publickey,密码和键盘交互式身份验证
  • 命令,子系统和shell通道
  • 本地和远程端口转发
  • scp +完整的sftp版本0-3实现

这取决于文件的可用性。 是通过HTTP,FTP,SFTP还是通过您自己编写的服务器?

如果您想通过HTTP获取文件,可以使用:

HttpURLConnection connec = (HttpURLConnection)new URL("http://host/file").openConnection();
if(connec.getResponseCode() != connec.HTTP_OK)
{
    System.err.println("Not OK");
    return;
}
System.out.println("length = " + connec.getContentLength());
System.out.println("Type = " + connec.getContentType());
InputStream in = connec.getInputStream();
//Now you can read the file content with in

还有Jsch库,非常适合SFTP / SCP

您可以使用任何ssh java lib,如其他答案中所述,或使用file作为NFS共享文件夹挂载目录。 安装后,您可以使用通常的Java API来处理文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM