字节流与字符流之间怎样进行转换?

I/O流可分为字节流和字符流,有时字节流和字符流之间也需要进行转换。在JDK中,提供了两个类用于实现将字节流转换为字符流,它们分别是InputStreamReader和OutputStream Writer。InputStreamReader 是Reader的子类,它可以将一个字节输入流转换成字符输入流,方便直接读取字符。OutputStreamWriter是Writer的子类,它可以将一个字节输出流转换成字符输出流,方便直接写入字符。通过转换流进行数据读写的过程如图。

1655288499725_字节流.png

接下来通过一个案例来学习如何将字节流转为字符流,为了提高读写效率,可以通过BufferedReader和BufferedWriter来实现转换工作,具体代码如下。

Examplel1.java

import java.io.*;
public class Examplell {
   public static void main (String[] args) throws Exception {
      //1.创建字节输人流对象,获取源文件
      FileInputStream in =new FileInputStream("reader.txt");
      //将字节输入流对象转换成字符输入流对象
      InputStreamReader isr=new InputStreamReader (in);
      //创建字符输入缓冲流对象
      BufferedReader br =new BufferedReader (isr);
      //2.创建字节输出流对象,指定目标文件
      FileOutputStream out =new FileOutputStream("writer.txt");
      //将字节输出流对象转换成字符输出流对象
      OutputStreamWriter osw =new OutputStreamWriter (out);
      //创建字符输出缓冲流对象
      BufferedWriter bw=new BufferedWriter(osw);
      //定义一个字符串变量
      String line =null;
      //通过循环判断是否读到文件末尾
      while ((line =br.readLine()) !=null) {
          //输出读取到的文件
          bw.write(line);
          bw.newLine();
      }
      //关闭流
      br.close();
      bw.close();
   }
}

程序运行结束后,同样会将源文件“reader.txt“中的内容拷员到目标文件“writer.1xt”中,结果如图所示。

1655288566033_好好学习天天向上.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值