我正在尝试读取远程 linux 服务器中的文件。但我不知道如何使用 java 获取文件的输入流。
如何才能做到这一点?
假设您有一个与服务器的有效连接并可以访问该文件,您可以使用File
该文件的 URI 创建一个对象:
File f = new File(uri);
FileInputStream fis = new FileInputStream(f);
URI 应该是文件的 URI,例如“file://server/path/to/file”。另请参阅File(URI) 的 Javadoc。
也许SSHJ可以帮助你?https://github.com/shikhar/sshj
图书馆的特点包括:
这取决于文件如何可用。是通过 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
还有非常适合 SFTP / SCP 的Jsch库
您可以使用任何 ssh java lib,如其他答案中所述,或者将文件挂载目录作为 NFS 共享文件夹。安装后,您可以使用通常的 java API 来访问文件。