getResourceAsStream()与FileInputStream

getResourceAsStream()与FileInputStream

我试图在一个webapp中加载一个文件,然后我得到了一个FileNotFound当我使用FileInputStream..但是,使用相同的路径时,我能够加载文件。getResourceAsStream()..这两种方法有什么区别,为什么一种方法起作用,而另一种方法不起作用?

繁星coding
浏览 1344回答 4
4回答

慕斯王

getResourceAsStream对于web应用程序来说,这是正确的方法(正如您已经了解到的)。原因是,如果你在战争中打包你的web应用程序,从文件系统中读取无法工作。这是正确的方式来打包一个网络应用程序。这种方式是可移植的,因为您不依赖于绝对文件路径或安装应用程序服务器的位置。

天涯尽头无女友

文件InputStream将加载传递给构造函数的文件路径,作为相对于工作目录Java进程。通常在web容器中,这类似于bin文件夹。getResourceAsStream()将加载一个相对的文件路径。从应用程序的类路径.

holdtom

这个FileInputStream类直接处理底层文件系统。如果有问题的文件在那里不存在,它将无法打开它。这个getResourceAsStream()方法的工作方式不同。它尝试使用ClassLoader它被调用的类。这使它能够找到例如嵌入在jar档案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java