【发布时间】:2012-09-11 09:05:00
【问题描述】:
我正在尝试读取远程 linux 服务器中的文件。但是我不知道如何使用java获取文件的输入流。
如何做到这一点?
【问题讨论】:
我正在尝试读取远程 linux 服务器中的文件。但是我不知道如何使用java获取文件的输入流。
如何做到这一点?
【问题讨论】:
也许 SSHJ 可以帮助你? https://github.com/shikhar/sshj
该库的功能包括:
【讨论】:
假设您有一个与服务器的有效连接并可以访问该文件,您可以使用该文件的 URI 创建一个 File 对象:
File f = new File(uri);
FileInputStream fis = new FileInputStream(f);
URI 应该是文件的 URI,例如“file://server/path/to/file”。 另请参阅Javadoc for File(URI)。
【讨论】:
这取决于文件如何可用。是通过 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,如其他答案中所述,或将文件挂载目录作为 NFS 共享文件夹。挂载后,您可以使用常用的 java API 来访问文件。
【讨论】: