Java的IO类

    Java的IO体系分为Input/Output和Reader/Writer两类,区别在于Reader/Writer在读写文本时能自动转换内码。基本上,所有的IO类多是配对的,即有XXXInput,就有一个对应的XXXOutput。
    Java的输入输入操作是基于数据流(Stream)的,有序的字节或者字符通过一个通信信道从源地址传送到目的地址。Java支持两个数据流:InputStream和OutputStream。这两个数据流又可以分为许多子类来完成IO功能。Java1.1版本正式加入了Reader和Writer两个类,支持Java IO的国际化标准,并通过国际化字符编码(Unicode)将文本存储起来。
    简要的Java 的IO类图如下:


这里写图片描述

    Reader类类似于InputStream类,它是输入类层次中的基础,Reader支持16位的eUnicode字符输出,而InputStream只支持8位字符输出

FilerReader与FileInputStream类的区别

    FileInputStream是以字节流方式读取,FileReader是把文件转换为字符流读入。InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。用Reader读取出来的是char数组或者String,使用InputStream读取出来的是byte数组
    Reader类及其子类提供的字符流读取char(16位,unicode编码),inputStream及其子类提供字节流读取byte(8位),所以FileReader类是将文件按字符流的方式读取,FileInputStream则是按字节流的方式读取文件。
    InputStreamReader和BufferReader可以在构造器中重新指定编码方式,如果不指定的话,将采用底层操作系统的默认编码方式,例如GBK
    FileReader与InputStreamReader涉及编码转换,可能在不同平台上出现乱码现象,而FileInputStream以二进制方式处理,不会出现乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值