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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一叶障目 中级黑马   /  2014-11-19 10:56  /  1562 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一叶障目 于 2014-11-19 11:00 编辑

  1. public static void demo5() throws IOException{
  2.   File file=new File("info");
  3.   if(!(file.exists())){
  4.    file.createNewFile();
  5.   }
  6.   FileReader fr=new FileReader(file);
  7. //FileWriter fw=new FileWriter(file);      A
  8.   Properties pro=new Properties();
  9.   pro.load(fr);
  10.   pro.setProperty("seven","seven");
  11.   FileWriter fw=new FileWriter("info");//B
  12.   pro.store(fw,"info");
  13.   pro.list(System.out);
  14.   fr.close();
  15.   fw.close();
  16.   
  17. }
复制代码
该静态函数的功能是对已有的配置文件中的信息进行修改;
   1、读取这个文件,文件中原存在数据
  2、并将这个文件中的键值数据存储到集合中
  3、通过集合对数据进行修改,该数据存在就修改,不存在就添加
  4、再通过流将修改后的数据存储的到文件中去
现在的问题时将 FileWriter fw=new FileWriter("info");
放在A位置程序不会得到正确结果: 文件中原有数据会全部失去,只余下新添加的seven=seven
放在B位置程序正确,请问放在A,B位置有什么区别吗?

9 个回复

正序浏览
zhangyangLengen 发表于 2014-11-19 19:32
第二个并不会进行新建文件,其实它会自动的判断,文件是否存在,如果文件不存在,就会自动创建,如果文件存 ...

(⊙v⊙)嗯,文件存在的话,两个定义在一块会在你加载文件进集合前就将文件覆盖,读取到的文件内容就是空的:lol
回复 使用道具 举报
zhangyangLengen 发表于 2014-11-19 14:45
FileWriter类中构造器中的方法:FileWriter(String fileName, boolean append)
是否覆盖原有的文件的内容 ...

其实是两个对象定义在一块,下面的fw定义会将文件中内容给覆盖。:lol
回复 使用道具 举报
kerner 发表于 2014-11-19 17:16
FileWriter类,是文件存在,则不创建,不存在才创建文件。
FileWriter(String filename) 会覆盖文件内容, ...

恩,已经懂了,O(∩_∩)O谢谢
回复 使用道具 举报
第二个并不会进行新建文件,其实它会自动的判断,文件是否存在,如果文件不存在,就会自动创建,如果文件存在,就不创建
回复 使用道具 举报
FileWriter类,是文件存在,则不创建,不存在才创建文件。
FileWriter(String filename) 会覆盖文件内容,并且系统文件指针移到首位。
FileWriter(String fileName, boolean append) 不会覆盖内容,系统文件指针会移到文件末尾。
回复 使用道具 举报
上楼提醒了我,问题还是没解决,毕老师的视频时说的是FileReader和FileWriter写在一块的话,第一个是一个输入流和文件相关联,第二个会新建该文件,file对象里面已经没有对象啦,如果是这样的话,加true也不应该是在原文件下续写啊
回复 使用道具 举报
zhangyangLengen 发表于 2014-11-19 14:45
FileWriter类中构造器中的方法:FileWriter(String fileName, boolean append)
是否覆盖原有的文件的内容 ...

加true是续写
回复 使用道具 举报
FileWriter类中构造器中的方法:FileWriter(String fileName, boolean append)
是否覆盖原有的文件的内容?
回复 使用道具 举报
已解决:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马