java-IO流(3)-缓冲流和转换流的介绍

目录

1转换流

1.1InputStreamReader

1.1.1声明形式

1.1.2构造函数

1.1.3代码演示

1.1.4总结

1.2OutputStreamWriter

1.2.1声明形式

1.2.2构造函数

1.2.3代码演示

1.2.4总结

2缓冲流

2.1缓冲流的分类

2.2特有方法


1转换流

将字节流和字符流进行相互转换

1.1InputStreamReader

将字节输入流转化为字符输入流

1.1.1声明形式

public class InputStreamReader extends Reader

1.1.2构造函数

   public InputStreamReader(InputStream in) {//传入一个InputStream的实现类的实例
        super(in);
        try {
            //设定编码的过程
            sd = StreamDecoder.forInputStreamReader(in, this, (String)null);
        } catch (UnsupportedEncodingException e) {
            throw new Error(e);
        }
    }

FileReader的声明形式:

public class FileReader extends InputStreamReader {
    public FileReader(String fileName) throws FileNotFoundException {
        super(new FileInputStream(fileName));
    }

FileReader的实现是继承InputStreamReader转换流,转换流的构造方法使用到FileInputStream字节输入流。

因此,FileReader的实现是将读取到的字节流通过转换流(本质是通过编码器将字节按照对应的编码表:ASCII,GBK,UTF-8)将其解析为我们能够识别的文本内容。

1.1.3代码演示

InputStreamReader reader = new InputStreamReader(new FileInputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt"));

FileInputStream inputStream = new FileInputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt");
InputStreamReader reader1 = new InputStreamReader(inputStream);

1.1.4总结

InPutStreamReader转换流继承自 Reader基类 ,而这个转化流在构造时需要先有一个FileInPutStream的实例,这样要就把FileInPutStream转换成了FileReader。

1.2OutputStreamWriter

将字节输出流转化为字符输出流

1.2.1声明形式

public class OutputStreamWriter extends Writer 

1.2.2构造函数

 public OutputStreamWriter(OutputStream out, String charsetName)
        throws UnsupportedEncodingException
    {
        super(out);
        if (charsetName == null)
            throw new NullPointerException("charsetName");
        se = StreamEncoder.forOutputStreamWriter(out, this, charsetName);
    }

1.2.3代码演示

OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt"));

FileOutputStream outputStream = new FileOutputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt");
OutputStreamWriter writer1 = new OutputStreamWriter(outputStream);

1.2.4总结

OutputStreamWriter转换流继承自 Writer基类 ,而这个转化流在构造时需要先有一个FileOutputStream的实例,这样要就把FileOutputStream转换成了FileWriter。

2缓冲流

提高IO的读取速度

2.1缓冲流的分类

字节缓冲流:BufferedInputStream、BufferedOutputStream

注意:创建字节输入缓冲流和字节输出缓冲流传参不能直接传入字符串,需要借助FileInputStream流来进行传入参数。

字符缓冲流:BufferedReader、BufferedWriter

2.2特有方法

BufferedWriter的特有方法:

void newLine() throws IOException;//根据当前系统,写入一个换行符

BufferedReader的特有方法:

String readLine() throws IOException;  //读取文本中一行内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值