用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
------解决方案--------------------学习