java拓展----字节数组流
目录
2.ByteArrayInputStream
3.ByteArrayOutputStream
一、简介虚拟机与系统
我们知道
如果需要操作这些文件,
我们可以利用这一特性将一些重要且并不是很大的数据以而二进制的形式存放在内存中。在
二、ByteArrayInputStream
字节数组输入流,基本用法跟文件操作流差不多,具体步骤为:
以下是
package com.demo.io; import java.io.ByteArrayInputStream; import java.io.IOException; public class ByteArrayStreamDemo { public static void byteArrayInputStreamDemo() throws IOException{ //创建数据源 byte [] b = "hello word".getBytes(); //创建流 ByteArrayInputStream bis = new ByteArrayInputStream(b); //创建缓冲区 byte [] b2 = new byte[5]; int len=-1; //将数据读到缓冲区中 while((len = bis.read(b2))!=-1){ System.out.println(new String(b2,0,len)); } } public static void main(String[] args) throws Exception { byteArrayInputStreamDemo(); } }
ps:这个流不需要关闭,研究源代码可知,官方并没有处理这个,而是交给
以下是官方
/** * Closing a <tt>ByteArrayInputStream</tt> has no effect. The methods in * this class can be called after the stream has been closed without * generating an <tt>IOException</tt>. */ public void close() throws IOException { }
三、ByteArrayOutputStream
字节数组输出流,使用步骤稍有不一样。它的作用是将二进制数据写入到一个二进制数组中,使用步骤稍有不同:
一下是
package com.demo.io; import java.io.ByteArrayOutputStream; import java.io.IOException; public class ByteArrayStreamDemo { public static void byteArrayOutputStreamDemo() throws IOException{ byte[] b =null; //选择流 ByteArrayOutputStream bos = new ByteArrayOutputStream(); //模拟二进制数据 byte[] b2 = "HELLO WORD".getBytes(); //将b2写入到内存中 bos.write(b2,0,b2.length); bos.flush(); //获取写入的数据 b = bos.toByteArray(); System.out.println(b.length+"==>"+new String(b,0,b.length)); } public static void main(String[] args) throws Exception { byteArrayOutputStreamDemo(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!