有没有理由不使用resource.getInputStream()?

时间:2012-11-04 13:24:32

标签: java spring file-io

创建FileInputStream是否有利于此:

InputStream fileInputStream = new FileInputStream(resource.getFile());

而不是使用资源创建的InputStream,如下所示:

InputStream resourceInputStream = resource.getInputStream();

资源是org.springframework.core.io.Resource

2 个答案:

答案 0 :(得分:3)

资源并非总是来自文件。它可以来自网络资源,也可以由类加载器动态生成。如果你这样做,99%的时间可能会很好,但你可能在特定的意外情况下遇到麻烦。

作为一般规则,最好不要对任何事情的具体实施做出假设。

使用resource.getFile()假设资源来自文件。

答案 1 :(得分:1)

如果您只需要输入流,则没有理由不使用它。 getFile的要点是以不同于打开FileInputStream的方式访问文件,例如读取属性,移动,删除,通过NIO而不是经典IO打开它等等。