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,," ...
随机推荐
- Stirling's Formula
目录 Stirling's Formula Keith Conrad. Stirling's Formula. Stirling's Formula \[\lim_{n \rightarrow \in ...
- 编写Java程序,使用JTable表格组件展现人员信息列表
返回本章节 返回作业目录 需求说明: 使用JTable组件显现人员信息列表 实现思路: 创建一个JTable对象. 创建一个JScrollPane对象(显示横向和纵向滚动条). 将表格添加到滚动面板. ...
- 解决vite+elementplus 打包后出现的下拉列表多出空元素的bug
打包后下拉列表出现的空元素bug 之前的项目element-plus版本是 "^1.0.2-beta.70" 把他升级一下就好了 npm i element-plus@1.0.2 ...
- SpringBoot集成RestTemplate
先把原文列出来: springboot实战之常用http客户端整合 springboot2.0集成RestTemplate -----------开始------------ SpringBoot应用 ...
- Hadoop用户配置免密登陆
Hadoop用户配置免密登陆, 参考其他免密配置方法自己总结的更简洁的步骤. 要实现A免密登陆B,需要把A生成的公钥放到B的对应目录下, 要实现ABC之间免密登陆,把3者的公钥汇总到一个文件中, 然后 ...
- android 解决报错 installation failed with message Failed to finalize session : INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed parse during installPackageLI: Failed to read manifest from /xx/xx/xx.apk
新工程启动报错 怎么办? 解决: 将这个选项去掉勾选后点击ok即可
- nefu120梅森素数
#include<iostream> #include<cstdio> using namespace std; typedef long long ll; const int ...
- 2022年form表单中input控件最详细总结
语法 <input type="" name="" id="" value="" placeholder=&quo ...
- docker的安装以及使用命令
docker的安装 安装docker https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository 从 2 ...
- Android官方文档翻译 十二 3.Supporting Different Devices
Supporting Different Devices 支持不同设备 Dependencies and prerequisites 依赖关系和先决条件 Android 1.6 or higher A ...