读书人

用getResourceAsStream()读取外部文件

发布时间: 2012-01-08 22:48:50 作者: rapoo

用getResourceAsStream()读取外部文件的问题。在线等
package test;

import java.io.InputStream;
import java.util.Properties;

public class Test {

public static void main(String[] args) throws Exception {
Properties loggerConfigs = new Properties();
ClassLoader loader = Test.class.getClassLoader();
InputStream in = loader.getResourceAsStream( "/resources/logger.properties ");
// InputStream in = Test.class.getResourceAsStream( "/resources/logger.properties ");
loggerConfigs.load(in);
String loggerName = loggerConfigs.getProperty( "logger ");
System.out.println(loggerName);
}

}

文件夹放在classes目录下面。

上面的代码会报如下的错误:
java.lang.NullPointerException
at java.io.Reader. <init> (Reader.java:61)
at java.io.InputStreamReader. <init> (InputStreamReader.java:80)
at java.util.Properties.load(Properties.java:266)
at test.Test.main(Test.java:13)
Exception in thread "main "

如果使用被注释的那一行来读文件是成功的。

我的问题是使用ClassLoader来读取要怎么做才能成功呢?
最好有能执行的代码。谢了。

[解决办法]
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream is = classLoader.getResourceAsStream( "/resources/logger.properties ");

[解决办法]
ClassLoader loader = Test.class.getClassLoader();
InputStream in = loader.getResourceAsStream( "/resources/logger.properties ");

使用这个ClassLoader的时候,logger.properties要放在你的classpath中才能找得到~
[解决办法]
mark
[解决办法]
学习

读书人网 >J2SE开发

热点推荐