属性集:Preperties
1.为什么使用属性集
可以对流进行操作,把硬盘中的键值对进行操作,把数据保存到Properties集合中,键和值都是字符串
构造方法
Properties()-->创建一个空的属性集列表
API方法
1.Properties对象.setProperties(String key,String value);---->保存一对键值对
2.Properties对象.getProperties(String key);----->通过key值获得对应的vlaue值
3.Properties对象.stringProperties();---->把所有的键封装到set集合中
与流相关的API方法
1.Properties对象.load(inputStream input);--->从字节输入流中读取键值对
2.Properties对象.load(Reader read);---->从字符输入流中读取键值对
3.Properties对象.store(OutputStream out,String connents);---->把数据存在字节输出流中
4.Properties对象.store(Writer write,String connents);---->把数据存到字符输出流中
注意:文件中数据格式:key=value connents:代表注释,一般都不用中文,一般也不写
输入流代码步骤
1.创建输入流对象,并指明对象的指定文件
2.创建PProperties对象
3.使用load方法把硬盘中的数据放到集合中
4.遍历集合
输入流代码演示
输出流代码步骤
1.创建输出流对象
2.创建PProperties对象
3.用setProperties方法往集合中写入数据
4.运用store方法把集合中的数据加到流中
5.关闭流
输出流代码演示
注意
1.键值对文件中可以使用#进行注释,注释之后的不会被读取
2.存在文件红的默认都是字符串
缓冲流【是一个容器】
目的:增加读取和写入的速度
按照类分类
字符缓冲流:BufferedReader,BufferedWriter
字节缓冲流:BufferedInputStream,BufferedOutputStream
缓冲流基本原理:是在创建对象的时候,会创建一个内置的默认大小的缓冲区,通过缓冲区写数据就能减少系统IO次数,减少开销
字节缓冲流
BufferedInputStream(inputStream input);--->创建一个新的缓冲输入流对象
BufferedOutputStream(OutputStream output);--->创建一个新的缓冲输出流对象
缓冲写入步骤
1.先创建一个File对象并指定文件
2.创建一个FileOutputStream流对象,并闯入File对象参数
3.创建BufferedOutputStream(FileOutputStream对象,int size)对象,指定缓冲区大小
4.使用BufferedOutputStream对象的write方法,把数据写到内部缓冲区
5.使用BufferedOutputStream对象的flush方法,把数据写到新文件中
6.释放资源
缓冲读取步骤
1.先创建一个File对象并指定文件
2.创建一个FileInputStream流对象,并闯入File对象参数
3.创建BufferedInputStream(FileInputStream对象,int size)对象,指定缓冲区大小
4.使用BufferedInputStream对象的read方法,把数据写到内部缓冲区
5.释放资源
字符缓冲流
BufferedWriter(Write out);---->创建一个新的字符缓冲输出流
BufferedReader(Reader read);---->创建一个新的字符缓冲输入流
特有方法
BufferedReader:public String readLine();---->读取整行文本信息
BufferedWriter:public void newLine();----> 换行
字符缓冲读取步骤
1.创建一个BufferedReader对象,构造方法搞一个字符输入流对象
2.使用read方法或者readline方法来读取文本信息
3.释放资源
字符输入流代码演示
字符缓冲写入步骤
1.创建一个字符缓冲输出流对象,构造方法中传递一个字符输出流
2.调用字符缓冲输出流对象中的write方法,把数据写入到内存缓冲区中
3.调用字符缓冲输出流对选哪个的flush方法,把内存缓冲区中的数据刷新到文件中
4.关闭流
字符输出流代码演示
转换流【字节流<--->字符流】
InputStreamReader类 ;中文的时候读取出来会乱码
目的:总的来说就是抛出使用字节编码的时候,如果文件里面的是中文,就会乱码,那么就可以用这个InputStreamReader通过指定编码集,那么就不会乱码了。
构造方法
inputStreamReader(intputStream input);--->创建一个使用默认字符集的字符流,默认为UTF-8
InputStreamReader(intputStream input,String charesetName);--->创建一个指定字符集的字符流
步骤
- 创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
- 使用read方法读取文件内部信息
- 关闭资源
代码演示
outputStreamWriter类:和InputStreamReader类一样