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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qmlovewhr 中级黑马   /  2013-7-15 14:42  /  1042 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-17 21:12 编辑

import java.io.*;
import java.util.*;
class  PropertiesDemo
{
public static void main(String[] args)throws IOException
{
  loadDemo();
}
public static void loadDemo()throws IOException
{
  Properties prop=new Properties();
  FileInputStream fis=new FileInputStream("E:\\info.txt");//定义一输入流对象
  prop.load(fis);//把输入流中内容加载到类对象中????
  prop.setProperty("wangwu","39");//调用hashtable的方法put,也就是添加,可能是覆盖后的修改??
  FileOutputStream fos=new FileOutputStream("E:\\info.txt");//定义一输出流对象
  prop.store(fos,"haha");//这一句不太明白,为什么haha成了文本中注释的部分,查了API,是说属性列表的描述??
  System.out.println(prop);//打印出prop中的内容
  prop.list(System.out);//将属性列表输出到控制台上
  fis.close();//关闭输入流
  fos.close();//关闭输出流
}
}
从整体来看,开始定义了一属性集Properties对象,一输出输入流对象,把文件内容放到输入流中,然后用Properties类对象进行加载,处理,再用一输出流返回到该文件中,最后关闭两个流对象.是这样理解的吗,有什么不合理的地方,请大家指一下,另外  prop.store(fos,"haha");也帮我分析下怎样理解怎么容易接受?

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

2 个回复

倒序浏览
其实你的理解都是正确的,Properties.store(OutputStream out,String comments)其实这个方法就是前面接受一个输出流,然后将properties这个对象的内容以指定的格式写到输出流,因为properties对象的元素都是以键对存在的,就是都是一对一对的存在,所以写到文件的后的格式就是key=value这样的形式,然后后面的字符串其实你可以这样理解,因为大型的项目是需要很多配置文件的,而properties一般都是作为配置文件的使用,后面的字符串就是相当于对这个文件的解释,解释这个文件放的是什么内容,你也可以直接传进个空字符串,这样你在文件上就看不到了。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
你就把Properties看成一个可以和IO流关联的HashTable。getProperty就是Map集合中的get方法。setProperty。就是put方法。
load方法可以关联一个读取流,将文件中的配置信息读取到集合中。store方法可以关联一个输出流,将集合中的配置信息写入到文件中。list方法就是一个封装好的打印集合列表的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马