一、简介

1.概述

此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()toString() 获取数据。

关闭 ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。

2.构造方法

ByteArrayOutputStream()
          创建一个新的 byte 数组输出流。

3.常用方法

void write(int b)
          将指定的字节写入此 byte 数组输出流。
 byte[] toByteArray()
          创建一个新分配的 byte 数组。
 String toString()
          使用平台默认的字符集,通过解码字节将缓冲区内容转换为字符串。
 String toString(String charsetName)
          使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串。

二、使用

1.使用场景

FileInputStream读取中文的时候出现了乱码

解决方案:

  1. 字符流读取
  2. ByteArrayOutputStream

2.使用方式

public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("e.txt");ByteArrayOutputStream baos = new ByteArrayOutputStream();        //在内存中创建了可以增长的内存数组int b;while((b = fis.read()) != -1) {baos.write(b);                                //将读取到的数据逐个写到内存中}//byte[] arr = baos.toByteArray();              //将缓冲区的数据全部获取出来,并赋值给arr数组//System.out.println(new String(arr));System.out.println(baos.toString());          //将缓冲区的内容转换为字符串,在输出语句中可以省略调用toString方法,底层会默认帮我们调用toString()方法fis.close();
}

内存输出流ByteArrayOutputStream相关推荐

  1. 第三次学JAVA再学不好就吃翔(part112)--内存输出流

    学习笔记,仅供参考,有错必纠 内存输出流 内存输出流可以向内存中写数据, 把内存当作一个缓冲区,写出之后可以一次性获取出所有数据. ByteArrayOutputStream类 该类继承自java.i ...

  2. JAVA IO流(内存流、管道流、打印流)

    1.内存操作流 2.管道流 3.字节.字符转换流 4.字符的编码问题 5.打印流 6.System类对IO的支持 7.对象序列化 内存操作流 FileInputStream 和FileOutputSt ...

  3. StringUtils

    /需要导入第三方jar包pinyin4j.jarimport net.sourceforge.pinyin4j.PinyinHelper;import java.util.regex.Matcher; ...

  4. java 写流,Java IO中的其他读写流

    RandomAccessFile 构造方法 //var1 文件路径,var 文件的读写模式 "r"只读,"w"只写,"rw"读写 publi ...

  5. java如何解析json_java 中解析json步骤

    一.   JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. Json建构于两种结构: 1."名称/值"对的集合(A colle ...

  6. 数据流InputStream转字符串

    public static String ScreamToString(InputStream in) throws Exception{//定义一个内存输出流ByteArrayOutputStrea ...

  7. 从淘宝服务器IP地址服务获取IP地址信息的方法

    主要是json返回值的获取 package com.xtisp.service.system; import java.io.BufferedReader; import java.io.ByteAr ...

  8. java实现图片分辨率压缩、图片软化、jpg质量压缩

    最近遇见个需求,需要压缩图片,但是很多涉及到的方法类,要么对jdk依赖比较大,要么对系统的配置有要求,经过几天的研究和测试,终于整了一个还算比较全的方案. 代码 注解1:关于根据url读取图片的方法有 ...

  9. 文件上传、切片上传、秒传等

    切片上传与秒传方案 总览 理解的方案对比 一次性文件上传 切片上传 额外话题 总览 浏览器情况下: 针对大文件上传,一次性传输文件会出现网络中断等情况.不会传输成功. 把大文件切分成多个二进制流格式切 ...

最新文章

  1. ios架构篇-2 国际化多语言
  2. 推荐两款简单好用的图片放大jquery插件
  3. 皮一皮:据说烤红薯都是这样的...
  4. rip,ospf,eigrp内部网关协议的区别与用法
  5. ASP.NET MVC V2 Preview 1 发布 期望VS有更好的表现
  6. 计算机jsp外文文献,计算机 JSP web 外文翻译 外文文献 .doc
  7. spring boot打包问题,访问问题
  8. 使用ffmpeg来探测GB28181的ps流
  9. 20191202_2_识别偷税漏税人
  10. R语言自然语言处理:中文分词
  11. python3 重写、重用、重载
  12. node http创建正向代理_Node.JS实战20:用execFile执行外部程序
  13. 多线程之线程通信条件Condition二
  14. 一行 Python 代码,20款经典小游戏
  15. 滤波器原理及其作用计算机网络,什么是网络滤波器_网络滤波器工作原理_网络滤波器作用-与非网...
  16. PHP 生成 csv 文件时乱码解决
  17. 从一循环到150,并在每行打印一个值,另外在每个3的倍数行上打印出“foo“,在5的倍数行打印biz,在7的倍数行打印baz
  18. 【电子学会】2021年09月图形化四级 -- 成语接龙
  19. R语言机器学习之caret包详解(一)
  20. msf渗透命令和后渗透攻击

热门文章

  1. 清华大学计算机系研究生培养方案,攻读硕士学位研究生培养方案
  2. KERNEL_DATA_INPAGE_ERROR 蓝屏开机卡顿修复
  3. 要传送的报文共 x ( bit )。从源点到终 点共经过 k 段链路,每段链路的传播时延为 d ( s ),数据率为 b ( bit / s )。在电路交换时电路的建立时间为 s ( s )。在分组交
  4. wordpress非插件实现屏蔽英语、日语、俄语、韩语、阿拉伯语、泰语等外语垃圾评论!...
  5. ai人工智能换脸原理_他们如何看待AI监视内部工作原理
  6. 考研计算机报录比最高的手机,考研 | 报录比最高专业TOP10,就离谱!
  7. linux ctrl r 搜索,linux下用ctrl+r快速搜索history命令
  8. 【综述】3D智能数字化与3D打印:中国制造向中国智造转变的机遇
  9. 私域引流工具及场景落地方法
  10. Windows 纤程详解