黑马程序员技术交流社区
标题:
我喜欢抛根问底。
[打印本页]
作者:
qmlovewhr
时间:
2013-7-15 14:42
标题:
我喜欢抛根问底。
本帖最后由 杨兴庭 于 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");也帮我分析下怎样理解怎么容易接受?
作者:
木、易m
时间:
2013-7-16 19:17
其实你的理解都是正确的,Properties.store(OutputStream out,String comments)其实这个方法就是前面接受一个输出流,然后将properties这个对象的内容以指定的格式写到输出流,因为properties对象的元素都是以键对存在的,就是都是一对一对的存在,所以写到文件的后的格式就是key=value这样的形式,然后后面的字符串其实你可以这样理解,因为大型的项目是需要很多配置文件的,而properties一般都是作为配置文件的使用,后面的字符串就是相当于对这个文件的解释,解释这个文件放的是什么内容,你也可以直接传进个空字符串,这样你在文件上就看不到了。
作者:
王靖远
时间:
2013-7-16 21:33
你就把Properties看成一个可以和IO流关联的HashTable。getProperty就是Map集合中的get方法。setProperty。就是put方法。
load方法可以关联一个读取流,将文件中的配置信息读取到集合中。store方法可以关联一个输出流,将集合中的配置信息写入到文件中。list方法就是一个封装好的打印集合列表的方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2