ByteArrayOutputStream 和 ByteArrayInputStream的说明

原创 2016年08月29日 00:50:55

一、结构
java.lang.Object
—java.io.InputStream
—java.io.ByteArrayInputStream
官方说明:ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。

java.lang.Object
—java.io.OutputStream
—java.io.ByteArrayOutputStream
官方说明:此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。

二、构造方法
public ByteArrayOutputStream()
ByteArrayInputStream(byte[] buf)

三 、ByteArrayOutputStream中重要方法
public byte[] toByteArray():用来合并读取输入流中的数据
public String toString():从输入流缓冲区内容解码的字符串

四、代码实例

public class Test {

    public static void main(String[] args) {
        String s = "好好学习,天天向上";
        byte[] b = s.getBytes();
        ByteArrayInputStream bai = new ByteArrayInputStream(b);
        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        int t = bai.read();
        while (t != -1) {
            bao.write(t);
            t = bai.read();
        }
        System.out.println(bao);// 调用toString的方法
    }
}

输出结果为:好好学习,天天向上

合并读取文件:利用输出流的toByteArray()方法

public class Test {

    public static void main(String[] args) {
        String s = "好好学习,天天向上";
        String s2 = "goodgoodtudy,daydayup";
        byte[] b = s.getBytes();
        byte[] b2 = s2.getBytes();
        ByteArrayInputStream bai = new ByteArrayInputStream(b);
        ByteArrayInputStream bai2 = new ByteArrayInputStream(b2);
        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        int t = bai.read();
        while (t != -1) {
            bao.write(t);
            t = bai.read();
        }
        int t2 = bai2.read();
        while (t2 != -1) {
            bao.write(t2);
            t2 = bai2.read();
        }
        **// 现在是所有数据都保存在了输出流中**
        byte[] data = bao.toByteArray();
        System.out.println(new String(data));
    }
}

输出结果: 好好学习,天天向上goodgoodtudy,daydayup

Java_io体系之ByteArrayInputStream、ByteArrayOutputStream简介、走进源码及示例——04

Java_io体系之ByteArrayInputStream、ByteArrayOutputStream简介、走进源码及示例——04 一:ByteArrayInputStream   1、    ...
  • chenghuaying
  • chenghuaying
  • 2013年11月24日 15:31
  • 2319

JAVA中ByteArrayInputStream和ByteArrayOutputStream详解

1.ByteArrayInputStreamByteArrayInputStream中包含一个内部缓冲区,用来包含那些可能从流中读的字节数组。还有一个内部计数器来跟踪下一个将被读取的字节。ByteAr...
  • jeryjeryjery
  • jeryjeryjery
  • 2017年05月16日 16:34
  • 1970

ByteArrayInputStream(ByteArrayOutputStream)和BufferedInputStream(BufferedOutputStream)的区别

PS:ByteArrayXXXputStream:指ByteArrayInputStream或者ByteArrayOutputStream BufferedXXXputStream:指Buffere...
  • RichieZhu
  • RichieZhu
  • 2016年08月23日 13:51
  • 496

输入流bytearrayinputstream转为输出流bytearrayoutputstream

输入流转输出流 如下: import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public cl...
  • tianshi4851
  • tianshi4851
  • 2014年10月16日 19:59
  • 467

java IO笔记(ByteArrayInputStream/ByteArrayOutputStream)

今天讲的是ByteArrayInputStream流和ByteArrayOutputStream流。 首先让我们来看看ByteArrayOutputStream的源码: ByteArrayOutput...
  • moonfish0607
  • moonfish0607
  • 2017年08月14日 14:21
  • 151

ByteArrayOutputStream或ByteArrayInputStream不需要关闭流原因分析

在解压图片的时候发现ByteArrayOutputStream不需要关闭,为啥呢? ByteArrayOutputStream或ByteArrayInputStream是内存读写流,不同于指向硬盘的...
  • u012668925
  • u012668925
  • 2016年12月30日 12:35
  • 2803

Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream

Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/...
  • zhaoyanjun6
  • zhaoyanjun6
  • 2017年02月09日 14:18
  • 973

ByteArrayInputStream和ByteArrayOutputStream向内存中读写数据

import java.io.*; public class ByteArrayDemo { public static void main(String[] args) { String ...
  • anlidengshiwei
  • anlidengshiwei
  • 2014年12月08日 20:47
  • 1425

字节流ByteArrayInputStream和ByteArrayOutputStream的练习

练习一:字节流ByteArrayInputStream的读写过程测试 import java.io.ByteArrayInputStream; import java.io.ByteArrayOut...
  • linhaiyun_ytdx
  • linhaiyun_ytdx
  • 2016年09月11日 14:39
  • 432

黑马程序员——Java IO—字节流—ByteArrayInputStream和ByteArrayOutputStream

ByteArrayInputStream 和 ByteArrayOutputStream 引用如下一段话来说明一下这2个类: “内存虚拟文件或者内存映像文件就是把内存中的一块数据存...
  • guoying252166655
  • guoying252166655
  • 2014年10月01日 16:36
  • 1041
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ByteArrayOutputStream 和 ByteArrayInputStream的说明
举报原因:
原因补充:

(最多只允许输入30个字)