使用字节流读取中文的问题,字符输入流Reader类&FileReader类介绍

使用字节流读取中文的问题:

使用字节流读取中文文件

1个中文

GEK:占用两个字节

UTF-8:占用3个字节

上代码案例:

/**
 * 使用字节流读取中文文件
 * 1个中文
 *   GBK:占用两个字节
 *   UTF-8:占用3个字节
 */
public class bianma {
    public static void main(String[] args) throws IOException {
        //1.创建FileInputStream对象,构造方法中绑定要读取的数据源
        FileInputStream stream = new FileInputStream("ku.txt");
        //2.使用FileInputStream对象中的方法read,读取文件
        //int read()读取文件中的一个字节并返回,读取到文件的末尾返回-1
        int a;
        while ((a=stream.read()) !=-1){
            System.out.print((char)a);
        }
        //释放资源
        stream.close();
    }
}

运行结果:

 

 

 

 

 

 

 

字符输入流Reader类&FileReader类介绍:

java.io.Reader:字符输入流,是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类

共性的成员方法:

int read()读取单个字符并返回。

int read (char[ ]   cbuf)一次读取多个字符,将字符读入数组。

void close()关团该流并释放与之关联的所有资源。

java.io.FileReader extends InputstreamReader extends Reader

FiLeReader:文件字符输入流

作用:把硬盘文件中的数据以字符的方式读取到内存中

构造方法:

FiLeReader( string fiLeName)

FiLeReader( FiLe file)

参数:读取文件的数据源

string fiLeName:文件的路径

File file:—个文件

FiLeReader构造方法的作用:

1.创建一个FiLeReader对象

2.会把FileReader对象指向要读取的文件

 

 

 

posted @ 2022-07-09 13:11  冰灵IT  阅读(143)  评论(0)    收藏  举报