首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候使用"getResourceAsStream“方法?

什么时候使用"getResourceAsStream“方法?
EN

Stack Overflow用户
提问于 2012-04-20 21:25:31
回答 4查看 4.2K关注 0票数 5

我对使用上述方法感到困惑,因为当加载一些属性文件时,人们遵循的是不同的方法……

代码语言:javascript
运行
复制
Properties prop 
 = new Properties(new FileInputStream(new File("<path of the properties file>"));

几乎没有人在使用..

代码语言:javascript
运行
复制
Properties prop 
 = new Properties(getClass().getResourceAsStream("<path of the properties file>"));

什么时候使用哪一个?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-20 21:31:15

getResourceAsStream在您的类路径中搜索给定的文件/资源,它还可以从JAR内部提供资源的InputStreams

因此,如果您的属性存在于物理文件系统中的某个文件夹中(例如,用户文件夹,...)使用FileInputStream,如果文件嵌入到类路径中(例如,作为JAR中的资源),则使用getResourceAsStream

票数 11
EN

Stack Overflow用户

发布于 2012-04-20 21:35:34

文件系统读取文件时,请使用使用相对路径或绝对路径的FileInputStream( file ())。

当您的程序作为jar分发,并且您需要加载该jar中的文件时,您需要使用getResourceAsStream(),它将在类路径中搜索该文件,并且该路径是相对于类路径的。

票数 2
EN

Stack Overflow用户

发布于 2012-04-20 21:31:12

如果您100%确定文件位置不会在不同环境中更改,则可以使用第一种方法。这意味着存在额外的操作,以确保在所有环境中创建这些目录路径。另一方面,您可以灵活地更新属性文件,而无需打开jar。

第二种方法非常可移植,因为您是从类路径读取的。但它的缺点是每次属性更新时都要重新捆绑jar文件。

所以,这基本上取决于你的用例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10247161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档