我有一种情况,我想从本地计算机(假设文件目录是 C:\Users\temp\file.txt)到具有 Windows Server 2008 的远程服务器创建 inputStream。
如何让网络应用程序使用该文件的本地版本,因为我在编译成 WAR 文件之前尝试过此操作。
File f = new File("C:\Users\temp\file.txt");
当我尝试使用 InputStream 时,它崩溃了。我相信它引用了服务器的 C:\Users\temp\file.txt,该文件不存在。
我知道这是一个“愚蠢”的问题,但任何建议都会非常有帮助。
最佳答案
如果您尝试从另一台计算机访问存储在一台计算机上的文件,则必须以某种方式“共享”该文件。有几种相当简单的方法可以做到这一点:
- 设置网络文件系统。常见的选择是 Samba或an S3 bucket mounted as a drive 。这样做的优点是,为了读取文件的目的,所有文件都显示为“本地”,因此您可以像平常一样使用
FileInputStream
。 - 使用 HTTP 共享。设置 HTTP 服务器,如 Apache在包含该文件的主机上,将文件复制到 Web 共享目录,然后使用
URL
或者像 Apache HTTPComponents Client 这样的 HTTP 客户端通过 URL 访问该文件。 (您也可以将此方法与 FTP 或其他服务结合使用。)
一开始共享文件有点麻烦,但是一旦设置了共享文件系统或 Web 服务器,共享大量文件就轻而易举了。
关于java - 从本地机器到tomcat部署的webapp的InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200496/