字符流FileReader
- A:字符流是什么
- 字符流是可以直接读写字符的IO流
- 字符流读取字符,就要先读取到字节数据,然后转为字符.。果要写出字符,需要把字符转为字节再写出。
- B:FileReader
-
FileReader类的read()方法可以按照字符大小读取
FileReader fr = new FileReader("xxx.txt"); //创建输入流对象,关联aaa.txt int ch; while((ch = fr.read()) != -1) { //将读到的字符赋值给ch System.out.println((char)ch); //将读到的字符强转后打印 } fr.close(); //关流
-
package com.heima.chario;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo01_FileReader {
public static void main(String[] args) throws IOException {
//demo01();
FileReader fr = new FileReader("xxx.txt");
int c;
//以前中文的两个字节基本都是以负数的形式去体现的
//后来通过升级,中文的第二个字节可以是正数也可以是负数,第一个字节绝对都是负数.
//通过码表在读取的时候,发现第一个字节是负数,然后就一起读两,依次继续.
//只所以能每次读一个字符,是通过码表来读取的.
while((c = fr.read()) != -1) { //通过项目默认的码表一次读取一个字符
System.out.print((char)c);
}
fr.close();
}
public static void demo01() throws FileNotFoundException, IOException {
FileReader fr = new FileReader("xxx.txt");
int x = fr.read();
System.out.println(x);
char c = (char)x;
System.out.println(c);
fr.close();
}
}