使用各种InputStream方法进行文件加载
要将文件作为InputStream加载,程序员有多种选择需要考虑。本文比较和对比了三种常见的方法:
- this.getClass().getClassLoader().getResourceAsStream(fileName)
- Thread.currentThread().getCont extClassLoader().getResourceAsStream(fileName)
- this.getClass().getResourceAsStream(fileName)
方法解释差异
这些方法之间的主要区别在于它们如何解释提供的文件名。 ClassLoader.getResourceAsStream() 和 Class.getResourceAsStream() 使用不同的方法:
Class.getResourceAsStream(path):
- 将 path 视为调用类的包。
- 示例: String.class.getResourceAsStream("myfile.txt") 在类路径中搜索“java/lang/myfile.txt”。
- 开头的“/”表示绝对路径,从类路径的根目录开始.
- 示例:String.class.getResourceAsStream("/myfile.txt") 在中搜索“./myfile.txt” classpath。
ClassLoader.getResourceAsStream(path):
- 将所有路径视为绝对路径。
- 示例:字符串。 class.getClassLoader().getResourceAsStream("myfile.txt") 和String.class.getClassLoader().getResourceAsStream("/myfile.txt") 都在类路径中搜索“./myfile.txt”。
适用性注意事项
在您的具体情况下,在 WebSphere 6.1 中部署时,您应该使用Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)。此选择符合在应用程序服务器环境中加载资源的推荐实践。 this.getClass().getResourceAsStream() 也适合这种情况。
Tomcat 用户的其他注意事项
对于运行的 Tomcat 用户8 之前的版本,请注意 ClassLoader.getResourceAsStream() 和 Class.getResourceAsStream() 的行为可能与 预期的。确保您彻底评估代码在这些环境中的行为。
以上是我应该使用哪种'InputStream”方法来加载不同应用服务器中的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

在使用IntelliJIDEAUltimate版本启动Spring...

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

Redis缓存方案如何实现产品排行榜列表的需求?在开发过程中,我们常常需要处理排行榜的需求,例如展示一个�...

将姓名转换为数字以实现排序的解决方案在许多应用场景中,用户可能需要在群组中进行排序,尤其是在一个用...

电商平台SKU和SPU表设计详解本文将探讨电商平台中SKU和SPU的数据库设计问题,特别是如何处理用户自定义销售属...

在Idea中如何设置SpringBoot项目默认运行配置列表在使用IntelliJ...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具