JavaSE之Properties类属性集以及缓冲流

Map<K,V>接口有一个早期的实现类是Hashtable<K,V>,目前已被HashMap所取代,但Hashtable下有一个子类目前仍在使用。即Properties集合,该集合是目前唯一一个与IO流结合的集合

一、Properties集合

Properties集合同样是一个双列集合,它的属性列表中的键和值都是字符串

使用Properties集合中的store方法把集合中的临时数据写入到硬盘中存储

使用Properties集合中的load方法把硬盘中保存的键值对读取到集合中使用

Properties集合中的一些方法如下:

setProperty方法即调用Map集合的put方法,getProperty方法相当于Map集合中的get(Key)方法,stringPropertyNames方法相当于Map集合中的keySet方法

使用store方法:

1.void store(OutputStream out,String comments);     使用字节输出流,不能写入中文

2.void store(Writer writer,String comments);      使用字符输出流,可以写入中文

comments:解释说明用的字符串,不能使用中文,一般使用" "

使用load方法:

1.void load(InputStream inStream);    使用字节输入流,不能读取含中文的键值对

2.void load(Reader reader);      使用字符输入流,可以读取含中文的键值对

注意:

1.存储键值对的文件中,键与值得连接符合可以是=、空格等其他符号

2.存储键值对的文件中,可以使用#在键值对前注释,被注释的键值对不会再被读取

二、缓冲流

缓冲流,也叫高效流,是对四个Filexxx流的增强,分为字节缓冲流:BufferedInputStream和BufferedOutputStream,字符缓冲流:BufferedWriter和BufferedReader

缓冲流的基本原理:在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少IO次数,从而提高读写的效率

1.BufferedOutputStream:字节缓冲输出流

构造方法:BufferedOutputStream(OutputStream out);    将数据写入底层的输出流

BufferedOutputStream(OutputStream out,int size);     指定缓冲区大小

因此使用时:

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("文件路径"));

2.BufferedInputStream:字节缓冲输入流

构造方法:BufferedInputStream(InputStream in);    

BufferedInputStream(InputStream in,int size);     指定缓冲区大小

因此使用时:

BufferedInputStream bis=new BufferedInputStream(new FileInputStream("文件路径"));

之后的使用同之前的Filexxx相同

3.BufferedWriter:字符缓冲输出流

构造方法:BufferedWriter(Writer out);    

BufferedWriter(Writer out,int size);     指定缓冲区大小

该流特有的方法:void newLine();   写入一个行分隔符,即换行,不同系统下行分隔符也不同

4.BufferedReader:字符缓冲输入流

构造方法:BufferedReader(Reader in);    

BufferedReader(Reader in,int size);     指定缓冲区大小

该流特有的方法:String readLine();   读取一行数据,返回值即包含该行内容的字符串,如果已达到流末尾,则返回null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值