A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小张童鞋 于 2012-6-24 15:47 编辑

import java.io.*;
import java.util.*;

class PropDemo1
{
        public static void main(String[] args) throws IOException
        {
                demo_1();
        
        }

        public static void demo_1() throws IOException
        {
                BufferedReader bufr= new BufferedReader(new FileReader("ohmygod.txt"));
                //位置1
                Properties prop = new Properties();

                prop.load(bufr);
                prop.setProperty("lisi","88");

                BufferedWriter bufw = new BufferedWriter(new FileWriter("ohmygod.txt"));//输出流语句A
                 //位置2               
                prop.store(bufw,"");
                prop.list(System.out);

                bufw.close();
                bufr.close();
        }
}

我的问题是 输出流语句A 放在位置1和放在位置2,两者用list()打印在控制台上的语句和store()方法保存在"ohmygod.txt"的是不一样的,这是为什么呀,放在位置1的时候获取文件和放在位置2的时候获取文件,内容不都是一样的么.先定义和后定义这个输出流语句应该都可以的呀。

1.png (603 Bytes, 下载次数: 20)

放在位置1的输出,在文本中也是如此

放在位置1的输出,在文本中也是如此

2.png (1021 Bytes, 下载次数: 22)

放在位置2的输出,在文本中也是如此

放在位置2的输出,在文本中也是如此

2 个回复

倒序浏览
放在位置1时,当存在ohmygod.txt文件就将它覆盖,没有就创建ohmygod.txt文件,所以位置1文件被覆盖后文件内容没有内容,prop加载不到内容,里面只有后来设置的内容
位置2时,文件内容已经读取到Properties中,虽然语句A将文件覆盖,但是下面将prop内容写入到文件中,所以内容是全的
其实就是FileWriter将文件覆盖的问题

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
孔肖 发表于 2012-6-24 10:03
放在位置1时,当存在ohmygod.txt文件就将它覆盖,没有就创建ohmygod.txt文件,所以位置1文件被覆盖后文件内 ...

确实是,放在位置1时,文本已经被重置清零了.我用了万能的sop()方法验证了,谢谢哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马