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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王冰 中级黑马   /  2012-7-12 01:21  /  2241 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王冰 于 2012-7-12 07:26 编辑

public static void loadDemo()throws IOException
{
      Properties prop = new Properties();
      FileInputStream fis = new FileInputStream("info.txt");
      //将流中的数据加载进集合
      prop.load(fis);
      prop.setProperty("wangwu","39");
      FileOutputStream fos = new FileOutputStream("info.txt");
      prop.store(fos,"haha");//这里加载后就写入文件输出流了,
                                         //向流中写数据再将文件存入硬盘不是要刷新吗,这里不用刷新???
      prop.list(System.out);
      fos.close();
      fis.close();
}

4 个回复

倒序浏览
你说的刷新是指的flush方法么?
其实关于Properties与文件的操作其实jdk中已经为我们封装好了,
我们拿来用就可以了,其内部实现的方法是通过缓冲流store0方法实现的:
  1. private void store0(BufferedWriter bw, String comments, boolean escUnicode)
  2.         throws IOException
  3.     {
  4.         if (comments != null) {
  5.             writeComments(bw, comments);
  6.         }
  7.         bw.write("#" + new Date().toString());
  8.         bw.newLine();
  9.         synchronized (this) {
  10.             for (Enumeration e = keys(); e.hasMoreElements();) {
  11.                 String key = (String)e.nextElement();
  12.                 String val = (String)get(key);
  13.                 key = saveConvert(key, true, escUnicode);
  14.                 /* No need to escape embedded and trailing spaces for value, hence
  15.                  * pass false to flag.
  16.                  */
  17.                 val = saveConvert(val, false, escUnicode);
  18.                 bw.write(key + "=" + val);
  19.                 bw.newLine();
  20.             }
  21.         }
  22.         bw.flush();
  23.     }
复制代码
可以看到最后已经调用了flush方法,将内存中的数据写入到文件了

评分

参与人数 1技术分 +1 收起 理由
黑马张扬 + 1

查看全部评分

回复 使用道具 举报
张天天 发表于 2012-7-12 07:15
你说的刷新是指的flush方法么?
其实关于Properties与文件的操作其实jdk中已经为我们封装好了,
我们拿来用 ...

store方法调用的store0????
回复 使用道具 举报
王冰 发表于 2012-7-12 07:18
store方法调用的store0????

有什么疑问么
  1. public void store(OutputStream out, String comments)
  2.         throws IOException
  3.     {
  4.         store0(new BufferedWriter(new OutputStreamWriter(out, "8859_1")),
  5.                comments,
  6.                true);
  7.     }
复制代码
回复 使用道具 举报
张天天 发表于 2012-7-12 07:21
有什么疑问么

哦,知道了,谢谢啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马