黑马程序员技术交流社区

标题: 修改配置信息问题 [打印本页]

作者: 袁錦泰    时间: 2012-5-6 22:55
标题: 修改配置信息问题
    public static void main(String[] args) throws IOException {
        test();
    }   
    private static void test() throws IOException {
        File file = new File("c:\\info.txt");
        if(file.exists()){
            file.createNewFile();
        }
        FileReader fr = new FileReader(file);
        FileWriter fw = new FileWriter(file);//为什么语句放在这里后,文件内部的内容只有"zhangsan","10",之前写入的信息全部都没有了
        Properties prop = new Properties();
        prop.load(fr);
        prop.setProperty("zhangsan", "10");
        prop.list(System.out);
        prop.store(fw, "");
        fr.close();
        fw.close();
    }
    private static void propertiesDemo_1() throws IOException {
        Properties prop = new Properties();
        prop.setProperty("zhangsan","21");
        prop.setProperty("lisi","22");
        prop.setProperty("wangwu","23");
        prop.setProperty("zhaoliu","24");
        Set<String> names = prop.stringPropertyNames();
        FileOutputStream fos = new FileOutputStream("c:\\info.txt");
        prop.store(fos, "name+age");
        fos.close();
    }

作者: 李震 李震 李震    时间: 2012-5-6 23:03
前面的内容被覆盖掉了,如果要继续续写前面的内容必须在FileWriter fw = new FileWriter(file,true);
作者: 谭景宾    时间: 2012-5-6 23:04
文件被覆盖导致的,
FileWriter fw = new FileWriter(file,true) //多加一个参数,
“如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。”
作者: 小鹿叙鹿    时间: 2012-5-6 23:05
因为 FileReader fr = new FileReader(file)会读取已经存在的这个文件
而 FileWriter fw = new FileWriter(file)会创建一个文件,如果这个文件存在就把原来的给覆盖掉(重新的建立一个),否则建立一个新的。
而 FileWriter fw = new FileWriter(file)与FileReader fr = new FileReader(file)使用的刚好是同一个文件,
所以文件内部的内容只有"zhangsan","10",之前写入的信息全部都没有了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2