简介
使用字节流读取文件时,如果文件存在中文会导致乱码,因为汉字如果在GBK编码下占2个字节,UTF-8编码下占用3个字节,所以需要字符流,每次读取一个字符。
构造方法
FileReader(String fileName)
通过文件名称读取文件
FileReader(File file)
通过文件对象读取文件
常用方法
read()
每次读取一个字符
read(char[] cbuf)
读取到一个字符数组中
read(char[] cbuf, int off, int len)
代码
// 每次读取一个字符
public class Demo09 {
public static void main(String[] args) throws IOException {
FileReader fileReader = new FileReader("a.txt");
int read;
while ((read=fileReader.read()) != -1)
{
System.out.println((char)read);
}
fileReader.close();
}
}
// 每次读取N个字符
public class Demo09 {
public static void main(String[] args) throws IOException {
FileReader fileReader = new FileReader("a.txt");
char[] get = new char[2];
int read;
while ((read = fileReader.read(get)) != -1)
{
String str = new String(get, 0, read);
System.out.println(str);
}
fileReader.close();
}
}