如何访问远程计算机上存在的文件?

时间:2011-08-19 10:14:37

标签: java file

我想从我的代码JAVA访问远程机器上存在的文件(读取),我需要做什么? 只是机器的IP和文件的位置,或者我还需要其他东西吗?

谢谢

3 个答案:

答案 0 :(得分:3)

有一些选择:

  • 通过使用SMB / Samba的“映射”目录到远程计算机,然后您可以使用普通File类访问该文件。

  • 通过Web服务器,读取访问更容易(如果您需要写访问权限,那么您正在查看类似WebDAV的内容)。这需要在代码中使用HTTP协议。

  • 通过FTPSFTP网络协议访问该文件。这显然需要使用(S)FTP类来访问该文件。

从编码的角度看,第一个选项最简单。

答案 1 :(得分:2)

如果Java代码和远程文件都在Linux机器上,您也可以选择NFS。

  1. 一如既往,您需要启动一个服务于该文件的服务器 - 您需要nfsd来共享远程计算机上包含该文件的目录。
  2. 在运行Java代码的计算机上,装入共享nfs
  3. Here简要介绍了如何在Ubuntu上使用nfs。

    如果您更喜欢FTP / HTTP,您会对Apache commons vfs库感兴趣,它支持许多协议,包括FTP,SFTP,HTTP等。

答案 2 :(得分:1)

首先,您需要在提供文件的远程计算机上提供服务。一旦存在文件服务,您就可以使用其协议与服务进行通信。

假设client-server model,您在远程(服务器)端有多个选择。首先,您可以设计自己的协议,编写服务器,将其部署在远程计算机上并编写一个客户端(使用Java),该客户端将使用设计的协议与服务器通信。但是,可能会使用许多现成的解决方案(协议+服务器+ Java客户端库)。现在想到的三个协议:TFTPFTPSMB

如果您的目标很简单,我建议使用TFTP:UNIX,Windows和Mac OS X都有免费的TFTP服务器,客户端有Apache Commons Net Java库。