黑马程序员技术交流社区

标题: 【成都校区】日常记录 [打印本页]

作者: 子弹滞销    时间: 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