Java初学笔记27
十四、转换流:InputStreamReader 和 OutputStreamWriter
- 默认读取文件时,编码方式为UTF-8。于是对于读取起他的编码文件,就会出现乱码。
- 因为字节流可以指定编码方式,如果可以在指定编码方式后,再将字节流读取变成字符流,然后再进行读取,那么就不会出现乱码问题。于是转换流孕育而生。
【InputStreamReader】
3. InputStreamReader
Reader的子类,可以将InputStream(字节流)包装成(转换)Reader(字符流)
4. OutputStreamWriter
Writer的子类,实现将OutputStream(字节流)包装成Writer(字符流)
- 当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,所以建议将字节流转换成字符流
- 可以在使用时指定编码格式(比如utf-8, gbk ,gb2312, ISO8859-1等)
十五、打印流:PrintStream 和 PrintWrite
- 打印流只有输出流,没有输入流
2. PrintStream类
(1)字节流
(2)最高父类为OutPutStream,直接父类为FileOutPutStream
(3)默认输出数据的位置为标准输出,即显示器
(4)使用方法setOut,可以修改打印位置
System.setOut(new PrintStream(“e:\f1.txt”));
3. PrintWrite类
(1)字符流
(2)直接父类为Writer
(3)举例输出到显示器
PrintWriter printWriter = new PrintWriter(System.out);
printWriter. print(“hi,北京你好~”);
printWriter.close();
(4)举例输出到文件
PrintWriter printWriter = new PrintWriter(new FileWriter(“e:\f2.txt”);
printWriter. print(“hi,北京你好~”);
printWriter.close();
十六、Properties 配置文件类
1. 需求引入
2. 介绍
(1)专门用于读写配置文件的集合类配置文件的格式:
键=值
键=值
…
(2)注意:键值对不需要有空格,值不需要用引号一起来。默认类型是String
3. Properties的常见方法
【1】load
加载配置文件的键值对到Properties对象。load的形参为Reader或者Input Stream
【2】list
将数据显示到指定设备
【3】getProperty(key)
根据键获取值
【4】setProperty(key,value)
设置键值对到Properties对象。可以作为添加使用。也可以作为修改使用。
【5】store
(1)形参中可以是Writer,或者OutPutSteam。
(2)将Properties中的键值对存储到配置文件,若文件存在,即覆盖。在idea中,保存信息到配置文件,如果含有中文,会存储为unicode码。
(3)store(OutputStream out, String comments) 参数里面的comments表示注释,可以不写。
(4)如果是字符流输出则为中文;如果是字节流输出则为中文的 unicode 码值。
unicode码查询工具
4. 使用流程示例
(1)创建 Properties对象
Properties properties = new Properties()
(2)加载指定配置文件到程序
properties.load(new FileReader("src\\mysql.properties"));
5. 代码示例
(1)读取Properties文件
(2)写入Properties文件