输入/输出流体系中提供了两个转换流,这两个转换流用于将字节流转换成字符流,其中InputStreamReader将字节输入流转换成字符输入流, OutputStreamWriter将字节输出流转换成字符输出流,它们都是处理流,处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/输出方法,让程序员只需关心高级流的操作。 使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入/输出功能,让节点流与底层的IO设备、文件交互。 实际识别处理流非常简单,只要流的构造器参数不是一个物理节点,而是已经存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的。

使用处理流的优势:

1. 对开发人员来说,使用处理流进行输入/输出操作更简单;

2. 使用处理流的执行效率更高。

字节输入流转字符输入流:

//创建可变字符串

    StringBuilder builder = new StringBuilder();

    //创建字节输入流

    InputStream in= new FileInputStream("G:\\z\\WriterDemo.txt");

    //将字节输入流转换成字符输入流,可在后面指定编码,也可不指定

    InputStreamReader reader = new InputStreamReader(in,"gbk");

    char[] bs = new char[100];

    int count = 0;

    while((count = reader.read(bs, 0, bs.length)) != -1){

        builder.append(bs,0,count);

    }

//只需关闭处理流,节点流被处理之后不需要关闭

    reader.close();

System.out.println(builder.toString());

输出结果如下:

Java 中的转换流

字节输出流转字符输出流:

//创建字节输出流

    FileOutputStream out = new FileOutputStream("G:\\z\\WriterDemo.txt");

    //将字节输出流转换成字符输出流

OutputStreamWriter outWriter = new OutputStreamWriter(out);

    outWriter.write("?????");//输出到文件中

    outWriter.flush();//把流全部推进到文件中

outWriter.close();//关闭流

执行完结果如下:

Java 中的转换流

相关文章:

  • 2022-12-23
  • 2021-09-20
  • 2021-10-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
猜你喜欢
  • 2022-12-23
  • 2021-04-28
  • 2022-12-23
  • 2022-12-23
  • 2021-04-05
  • 2021-11-25
  • 2021-07-12
相关资源
相似解决方案