簡體   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