ByteArrayOutputStream内存流
简介
ByteArrayOutputStream 对byte类型数据进行写入的类 相当于一个中间缓冲层,创建ByteArrayOutputStream类实例时,内存中会创建一个byte数组类型的缓冲区,缓冲区会随着数据的不断写入而自动增长。
- 作用:
在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。
- 注意:
关闭ByteArrayOutputStream无效,此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException
- 原因:
操作的都是内存中的数组,所以不需要关闭,直接操作字节数组就可以了
故: ByteArrayInputStream 使用场景很少 不在做案例
JAVA代码
@Test
    public void demoTest() throws IOException {
        //创建字节输入流
        FileInputStream inputStream=new FileInputStream("F:\\temp\\t.txt");
        //创建输出流
        ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
        byte[] bytes=new byte[3];
        int a;
        while ((a=inputStream.read(bytes))!=-1){
            byteArrayOutputStream.write(bytes,0,a);
        }
        //得到全部输入的字符流
        byte[] bytes1 = byteArrayOutputStream.toByteArray();
        //进行输出
        System.out.println(new String(bytes1));
        byteArrayOutputStream.close();
        inputStream.close();
        System.out.println("关闭byteArrayOutputStream流后进行使用:"+new String(byteArrayOutputStream.toByteArray()));
    }
Gitee地址
https://gitee.com/zhuayng/foundation-study/tree/develop/JavaBasis/Other/src/main/java/com/yxkj/other/modular/flow/common/bytearray
参考:
https://www.cnblogs.com/tfxz/p/13251762.html
ByteArrayOutputStream内存流的更多相关文章
- 【java】内存流:java.io.ByteArrayInputStream、java.io.ByteArrayOutputStream、java.io.CharArrayReader、java.io.CharArrayWriter
		package 内存流; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java. ... 
- [源码]ObjectIOStream  对象流     ByteArrayIOStream  数组流 内存流 ZipOutputStream 压缩流
		1.对象流 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File ... 
- IO流(随机流,数组内存流
		File file1=new File("test1.txt"); RandomAccessFile in2=new RandomAccessFile(file1,"rw ... 
- Java IO流之内存流
		内存流 1)内存流主要用来操作内存 2)分类 ByteArrayInputStream 主要完成将内容从内存读入程序之中 ByteArrayOutputStream 主要是将数据写入到内存中. 3)输 ... 
- Java之IO流进阶篇:内存流,打印流,对象流
		Java中的IO流,即为输入输出流.所谓输入输出流,都是相对于程序而言,程序就是这个参照物.一张图看懂输入输出流: 输入流抽象基类:InputStream,Reader 输出流抽象基类:OutputS ... 
- Java - IO 内存流和打印流
		IO 内存流和打印流操作 字符编码 计算机中所有的信息组成都是二进制数据,所有能够描述的中文文字都是经过处理后的结果:所有的语言文字都会使用编码来进行描述,例如:ASCII码 常见编码 GBK/GB2 ... 
- Mybatis拦截器 mysql load data local 内存流处理
		Mybatis 拦截器不做解释了,用过的基本都知道,这里用load data local主要是应对大批量数据的处理,提高性能,也支持事务回滚,且不影响其他的DML操作,当然这个操作不要涉及到当前所lo ... 
- 不可或缺 Windows Native (13) - C++: 标准输入, 标准输出, 字符串内存流
		[源码下载] 不可或缺 Windows Native (13) - C++: 标准输入, 标准输出, 字符串内存流 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 标准输 ... 
- 内存流和null字节
		#include <stdio.h> #include <string.h> int main() { ]={}; FILE* fp = fmemopen(buf,," ... 
随机推荐
- 源码分析 SpringCloud 2020.0.4 版本 EurekaClient 的注册过程
			1. 概述 老话说的好:要善于思考,有创新意识. 言归正传,之前聊了 Springboot 的启动过程,今天来聊聊 Eureka Client 的注册过程. 2. Eureka Client 的注册过 ... 
- 使用pypy3加速python运行
			从这里下载对应OS版本的安装包 解压: tar xf pypy-x.y.z.tar.bz2 然后通过./pypy-x.y.z/bin/pypy可以直接进入console 可以使用pip安装包: ./p ... 
- Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面
			效果图: 自定义对话框布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xml ... 
- 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式
			查看本章节 查看作业目录 需求说明: 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式 ... 
- Qos 0/1/2的理解
			Qos 0/1/2的理解 Qos 0 最多一次的传输 消息是基于TCP/IP网络传输的.没有回应,在协议中也没有定义重传的语义.消息可能到达服务器1次,也可能根本不会到达. Qos 1 至少一次的传输 ... 
- 【Warrior刷题笔记】剑指offer 6 24 35. 三道题,让你学会链表递归迭代辅助栈
			题目一 从尾到头打印链表 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-l ... 
- .NET 云原生架构师训练营(责任链模式)--学习笔记
			目录 责任链模式 源码 责任链模式 职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了 何时使用:在处理 ... 
- Android 悬浮窗 System Alert Window
			悬浮窗能显示在其他应用上方.桌面系统例如Windows,macOS,Ubuntu,打开的程序能以窗口形式显示在屏幕上. 受限于屏幕大小,安卓系统中主要使用多任务切换的方式和分屏的方式.视频播放,视频对 ... 
- Microsoft HoloLens 开发(1): 搭建 HoloLens 开发环境
			1.硬件配置 64位 Windows 10 专业版, 企业版, or 教育版 (注: 家庭版不支持 Hyper-V 或者 HoloLens emulator) 64位 CPU 4核CPU (或者大于4 ... 
- Shell统计每个单词出现的个数
			题目链接 题目描述 写一个 bash脚本以统计一个文本文件 nowcoder.txt 中每个单词出现的个数. 为了简单起见,你可以假设: nowcoder.txt只包括小写字母和空格. 每个单词只由小 ... 
