リモート Linux サーバーにあるファイルを読み込もうとしています。しかし、Javaを使用してファイルの入力ストリームを取得する方法がわかりません。
これはどのように行うことができますか?
他の回答で述べたように、任意のssh java libを使用するか、NFS共有フォルダーとしてファイルを使用してディレクトリをマウントできます。マウント後、通常のJavaAPIを使用してファイルにアクセスできます。
ファイルがどのように利用可能かによって異なります。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ライブラリもあります
サーバーへの有効な接続とファイルへのアクセスがあると仮定すると、ファイル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
ライブラリの機能は次のとおりです。