字符输入流—read方法
字符流:
字符流的底层其实就是字节流.
字符流=字节流+字符集
特点:
输入流:一次读一个字节,遇到中文时,一次读多个字节
输出流:底层会把数据按照指定的编码方式进行编码,变成字节再写到文件中
使用场景:对于纯文本文件进行读写操作
FileReader:
1.创建字符输入流对象
2.读取数据
3.释放资源
空参read方法-代码:
public class CharStreamDemo01 {public static void main(String[] args) throws IOException {FileReader fr =new FileReader("a.txt");int ch;while ((ch = fr.read()) != -1){System.out.print((char) ch);}fr.close();} }
read ()细节:
1.read():默认也是一个字节一个字节的读取的,如果遇到中文就会一次读取多个
2.在读取之后,方法的底层还会进行解码并转成十进制。
最终把这个十进制作为返回值
这个十进制的数据也表示在字符集上的数字
英文: 文件里面二进制数据0110 0001
read方法进行读取,解码并转成十进制97
中文: 文件里面的二进制数据11100110 1011001 10001001
read方法进行读取,解码并转成十进制27721
我想看到中文汉字,就是把这些十进制数据,再进行强转就可以了
有参read方法-代码:
public class CharStreamDemo02 {public static void main(String[] args) throws IOException {FileReader fr = new FileReader("a.txt");char[] chars = new char[2];int len;while ((len = fr.read(chars)) != -1){System.out.print(new String(chars,0,len));}fr.close();} }