字节数组流,即向内存数组读/取数据,实现数据在流与流之间的传递。

与字节流别无二致。

  • ByteInputStream:

package SAMPLE.IO流;
import java.io.*;
/*文件 字节数组输入流1、确定源:字节数组,不要太大2、选择流 文件输入流:ByteArrayInputStream3、操作 (没有“文件不存在”异常)4、释放资源,可以不处理*/
public class ByteArrayIn字节数组流 {public static void main(String[] args) {//创建源byte[] src = "talk is cheap, show me the code".getBytes();//选择流ByteArrayInputStream bais = null;//扩展作用域try {bais = new ByteArrayInputStream(src);//操作(分段读取)byte[] flush = new byte[5];//缓存容器,字节流为字节数组。int len = -1;//接收长度while((len=bais.read(flush))!=-1){//字节数组-->字符串(解码)String str = new String(flush,0,len);System.out.print(str);}} catch (IOException e) {e.printStackTrace();System.out.println("读取失败");}finally {//此处close为空方法,字节数组会通过垃圾回收机制刷新try {if(bais!=null)bais.close();} catch (IOException e) {e.printStackTrace();System.out.println("关闭输入流失败");}}}
}

小结:

1、字节数组流不涉及对系统文件的操作,而是在内存中进行维护。

2、基于垃圾回收机制释放资源,close()变得没有必要。

  • ByteOutputStream:

package SAMPLE.IO流;
import java.io.*;
/*文件 字节数组输出流1、确定源(内部维护)2、选择流 不关联源3、操作4、释放资源 可以不用*/
public class ByteArrayOut字节数组流 {public static void main(String[] args) {//创建源byte[] dest = null;//选择流ByteArrayOutputStream baos = null;//扩展作用域try {baos = new ByteArrayOutputStream();//不关联源,无源内数据入流,而是流内数据入源//操作(写出)String msg = "show me the code";byte[] datas = msg.getBytes();//字符串-->字节数组(编码)baos.write(datas,0,datas.length);//追加形式baos.flush();//获取数据dest = baos.toByteArray();System.out.println(new String(dest,0,dest.length));} catch (IOException e) {e.printStackTrace();System.out.println("写出失败");}finally {//释放资源close,在此处可有可无try {if(baos!=null)baos.close();} catch (IOException e) {e.printStackTrace();System.out.println("关闭输出流失败");}}}
}

小结:

1、不关联系统文件,写出的数据在内存中维护。

2、close()不必要。

Java 字节数组流相关推荐

  1. Java 字节数组流之图片转成字节数组

    Java 字节数组流之图片转成字节数组,相当于图片的复制 字符串可以直接读取到字节数组中用(getBytes) 问题:将一张图片读到字节数组里面(所有的东西都能够读到字节数组里面) 思路:先使用文件输 ...

  2. Java 字节数组流(ByteArrayInputStream 和 ByteArrayOutputStream)

    1.FileInputStream.FileOutputStream.FileReader.FileWriter是存储在硬盘上的 硬盘上的资源java虚拟机是无权直接访问的,必须借助操作系统,java ...

  3. Java的知识点29—— 文件字符流、字节数组流

    文件字符流 FileReader  FileWriter 分段读取 文件字符输入流 package cn.dym; import java.io.File; import java.io.FileNo ...

  4. IO知识点整理(序列化,管道流,数据流,字节数组流,与编码)

    一:序列化的问题 1.序列号的使用问题 关于在序列化中的序列号的使用问题,一般要是使用. 因为,每次要序列化的类产生都会产生一个一个新的序列号,如果将这个类的程序修改后,就会产生新的序列号,以前序列化 ...

  5. .dat文件写入byte类型数组_文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流...

    一.实操名称: 描述如下流的基本作用:文件字节流.文件字符流.缓冲字节流.缓冲字符流字节数组流.数据流.转换流.对象流二.描述1.文件字节流:包括:FileInputStream,FileOutput ...

  6. Java字节数组byte b[]与byte[] b

    Java中的字节数组 Java字节数组仅用于存储字节数据类型值.字节数组中元素的默认值为0. 通过以下Java字节数组示例,您可以学习 如何声明Java字节数组? 如何为Java字节数组分配值? 如何 ...

  7. 11Java的字节数组流及其使用

    IO字节数组流 字节数组流ByteArrayInputStream.ByteArrayOutputStream的区别: 源头换成电脑上的内存中的数据,字节数组,可以看成电脑上的内存,或者是网络上的内存 ...

  8. java 如何操作字节数组_实例解析Java字节数组操作模式代码

    字节数组的关键是它为存储在这部分内存中的每个8位值提供索引(快速)和精确的原始访问,并且您可以操纵这些字节来控制每个位.缺点是计算机只将每个条目视为一个独立的8位数字--这可能是您的程序正在处理的,或 ...

  9. java aes iv 24位_当key和IV是Java字节数组时,用python进行AES解密

    我有以下两个值: AES key它是一个Java字节数组64,67,-65,88,-19,-118,-16,-53,-81,-98,44,-83,82,-90,124,112,-120,42,92,6 ...

最新文章

  1. gzez某蒟蒻lyy的博客
  2. java setdaemon_Java ThreadGroup setDaemon()方法
  3. hbase多master和动态添加节点
  4. iis服务器修改内存,修改IIS的虚拟内存
  5. HBuilderx中编译sass文件
  6. 在页面加载后执行任务
  7. [20190816]12c执行exec SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS()报错.txt
  8. C/C++,pascal函数调用约定
  9. (XWZ)的Python学习笔记Ⅲ——面向对象高级编程
  10. java 拉姆达表达式_一看就懂之java8新特性函数式编程:我是拉姆达表达式lambda...
  11. 分享一道用Python基础+蒙特卡洛算法实现排列组合的题目(附源码)
  12. python中led是什么意思_用于检测LED闪光灯的Python库
  13. SPH物体漂浮模拟 之 波海泛舟
  14. JsonUtils的实现:对象与json相互转换
  15. 使用ClickHouse JDBC官方驱动,踩坑无数
  16. React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)
  17. 小傻蛋的妹妹跟随小甲鱼学习Python的第十六节016
  18. Infortrend CS分布式NAS集群强项之---成本篇
  19. 从游戏智能到疾病诊断,腾讯「绝悟」AI 从虚拟走向现实
  20. 华东师大计算机专硕学费,2021年华东师范大学硕士研究生学费标准公示

热门文章

  1. Vue动画事件详解及过渡动画实例
  2. 奇葩问题 npm install 报错 gyp ERR
  3. C语言中的双感叹号的作用
  4. OpenCV C++使用高通滤波和阈值法增强指纹图像
  5. lua中的sort排序
  6. 微信jssdk图片上传 ios不支持
  7. 课堂练习----结对开发地铁
  8. 【码题集周练习】001
  9. the sun also rises day 7
  10. CCNP——OSPF协议详解及其支持的网络类型