InputStreamReader介绍&代码实现,序列化和反序列化的概述

InputStreamReader介绍&代码实现:

java.io.InputstreamReader extends Reader

InputStreamReader:是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。(解码:把看不懂的交成能看懂的)

继承自父类的共性成员方法:

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

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

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

构造方法:

InputStreamReader(InputStream in)创建一个使用黑认字符集的InputStreamReader。

InputStreamReader(InputStream in,String charsetName)创建使用指定字符集的InputStreamReader。

参数:

Inputstream in :字节输入流,用来读取文件中保存的字节

string charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8

使用步骤:

1.创建InputstreamReader对象,构造方法中传递字节输入流和指定的编码表名称

2.使用InputstreamReader对象中的方法read读取文件

3.释放资源

注意事项:

构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码

public class geshi {
    public static void main(String[] args) throws IOException {
        uft();
    }

    /**
     * 使用InputstreamReader读取UTF-8格式的文件
     */
    private static void uft() throws IOException {
        //1.创建InputstreamReader对象,构造方法中传递字节输入流和指定的编码表名称
        InputStreamReader reader = new InputStreamReader(new FileInputStream("haihao.txt"));

        //2.使用InputStreamReader对象中的方法read读取文件
        int a =0;
        while ((a = reader.read()) !=-1){
            System.out.println((char) a);
        }
        //3.释放资源
        reader.close();
    }
}

 

 

 

 

 

序列化和反序列化的概述:

Java提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。

字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。

反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、

对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。看图理解序列化:

 

 

 

 

 

 

posted @ 2022-07-14 11:31  冰灵IT  阅读(203)  评论(0)    收藏  举报