黑马程序员技术交流社区
标题:
【成都校区】日常记录
[打印本页]
作者:
子弹滞销
时间:
2018-12-6 16:25
标题:
【成都校区】日常记录
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读取文本替代类加载器,测试可行!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2