我使用以下代码读取servlet中的属性文件。我想澄清getClass.getClassLoader().getResourceAsStream(...)
行。
根据我的理解,getClassLoader()
将获得与我定义的Servlet类相关联的类加载器。但是这与propFileName
如何相关?
Properties prop = new Properties();
String propFileName = "config.properties";
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFileName);
prop.load(inputStream);
String user = prop.getProperty("GOOGLE_CLIENT_ID");
String id = prop.getProperty("GOOGLE_REDIRECT_URL");
答案 0 :(得分:0)
public InputStream getResourceAsStream(String name)
根据Java API,此方法查找具有给定名称/路径的资源。 搜索与ClassLoader相关联的资源的规则(给定的类由类的定义类加载器实现)。
参数“name”必须是文件的“绝对”路径,因此它将打开InputStream并将其实例传递给Properties.load(inputStream)方法。
Java API中明确提到了这一点。请看看: http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)
希望这有帮助!