Java ByteArrayOutputStream 内存输出流

来源:互联网 发布:风水峦头自学 知乎 编辑:程序博客网 时间:2024/06/08 18:08

Java ByteArrayOutputStream 内存输出流


概述

  • 此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据

ByteArrayOutputStream

  • 构造方法
构造方法 说明 ByteArrayOutputStream() 创建一个新的 byte 数组输出流 ByteArrayOutputStream(int size) 创建一个新的 byte 数组输出流,它具有指定大小的缓冲区容量(以字节为单位)
  • 方法
方法 说明 write(int b) 将指定的字节写入此 byte 数组输出流 write(byte[] b, int off, int len) 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte 数组输出流 toByteArray() 创建一个新分配的 byte 数组 toString() 使用平台默认的字符集,通过解码字节将缓冲区内容转换为字符串 toString(String charsetName) 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串

读取文件示例

FileInputStream input = null;try{    // 创建输入流和内存输出流    input = new FileInputStream("a.txt");    ByteArrayOutputStream output = new ByteArrayOutputStream();    int b;    // 从文件读取数据,并写入到内存缓冲区中    while((b = input.read()) > 0) {        output.write(b);    }    // 第一种获得数据的方式: 调用toByteArray方法,返回内存中的数据    byte[] byteArray = output.toByteArray();    System.out.println(new String(byteArray));    // 第二种获得数据的方式:调用toString方法,将内存中的数据解码成字符串    String content = output.toString();    System.out.println(content);}catch(IOException e) {    e.printStackTrace();}finally {    try{        // 关闭输入流        if(input != null) {            input.close();        }    }catch(IOException e){        e.printStackTrace();    }}
0 0