classLoader加载动态生成的文本
public class Test20 {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("b.txt");
fw.write("aichi=niurou");
fw.flush();
ClassLoader classLoader = Test20.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("b.txt");
Properties prop = new Properties();
prop.load(is);
for (String key : prop.stringPropertyNames()) {
System.out.println(key+"="+prop.getProperty(key));
}
is.close();
fw.close();
}
}执行结果java.lang.NullPointerException: inStream parameter is null用Debug执行正常,不会报异常关于异常的猜测:classLoader优先于对象存在,加载的文本其实是上一次生成的文本而输入流FileWrite对象创建后,对原文本进行了覆盖重写(先把原文件置为空???),导致迭代器没法正常识别文本内容,抛出空指针异常解决方法:在输出流FileWrite写出数据之后,创建输入流FileReader读取文本替代类加载器,测试可行!
|
|