广告
返回顶部
首页 > 资讯 > 后端开发 > Python >ByteArrayOutputStream与InputStream互相转换方式
  • 816
分享到

ByteArrayOutputStream与InputStream互相转换方式

2024-04-02 19:04:59 816人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录ByteArrayOutputStream与InputStream互相转换InputStream 转为 ByteArrayOutputStreamByteArrayOutputS

ByteArrayOutputStream与InputStream互相转换

InputStream 转为 ByteArrayOutputStream


public Reader(InputStream input) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len;
        try {
            while ((len = input.read(buffer)) > -1) {
                baos.write(buffer, 0, len);
            }
            baos.flush();
        } catch (ioException e) {
            throw new Exception("Illegal flow.");
        } finally {
            try {
                input.close();
            } catch (IOException e) {
                logger.error("file stream shutdown failed.");
            }
        }
        this.baos = baos;
}

ByteArrayOutputStream 转为 InputStream


 private InputStream streamTran(ByteArrayOutputStream in) {
        return new ByteArrayInputStream(in.toByteArray());
    }

Java字节数组流(ByteArrayInputStream和ByteArrayOutputStream)

1、FileInputStream、FileOutputStream、FileReader、FileWriter是存储在硬盘上的

硬盘上的资源java虚拟机是无权直接访问的,必须借助操作系统,java虚拟机借助完了之后要通知操作系统释放资源

在这里插入图片描述

2、把源头换成电脑上的一块内存(字节数组),既然是一块内存那么java就可以直接访问,因为是java虚拟机的一块内存。不用关闭(释放)

3、所有的东西都可以转成字节数组(字符串转成字节数组、任何一个数据(包括12、包括3.14、包括一个一个的对象都可以转成字节数组))

转成字节数组有什么好处?

字节数组就为二进制了,方便网络上进行传输

4、文件可以无限制的往里面加内容,但是内存速度快、量小,所以内存(字节数组)不允许不建议量特别的大

在这里插入图片描述

ByteArrayInputStream(byte[] buf) 参数为一个字节数组

创建一个 ByteArrayInputStream ,使其使用 buf作为其缓冲区数组

ByteArrayInputStream代码示例



public class IOTest07 {
	public static void main(String[] args) {
		// 1、创建源
		byte[] src = "talk is cheap show me the code".getBytes();
		// 2、选择流
		InputStream is = null;
		try {
		is = new ByteArrayInputStream(src);
		// 3、操作(分段读取)
		byte[] flush = new byte[5];//缓冲容器
		int len = -1;//接收长度
			while((len=is.read(flush))!=-1) {
				// 字节数组-->字符串(解码)
				String str = new String(flush,0,len);
				System.out.println(str);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			// 4、 释放资源
			try {
				if (null != is) {
					is.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

ByteArrayOutputStream代码示例



public class IOTest08 {
	public static void main(String[] args) {
		// 1、创建源:内部维护(内部根据数据要多大给你多大)
		// ByteArrayOutputStream()不需要指定(源)目的地()参数为空
		byte[] dest = null;
		// 新增方法:父类没有的方法子类有
		// 能够使用多态的两种:父类有的方法、子类没有(为延用)、父类有的方法子类也有(方法重写)
		// 2、选择流 (因为要使用新增方法(父类没有的方法子类有),所以不能发生多态)
		ByteArrayOutputStream baos = null;
		try {
			baos = new ByteArrayOutputStream();
			// 3、操作(写出)
			String msg = "show me the code";
			byte[] datas = msg.getBytes();// 字符串-->字节数组(编码)
			baos.write(datas, 0, datas.length);
			baos.flush();
			// 获取数据
			dest = baos.toByteArray();
			System.out.println(dest.length+"-->"+new String(dest,0,baos.size()));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				if (null != baos) {
					baos.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}

注意:

新增方法:父类没有的方法子类有

能够使用多态的两种:父类有的方法子类没有(为延用)、父类有的方法子类也有(方法重写,子类进行实现)

选择流 (因为要使用新增方法(父类没有的方法子类有),所以不能发生多态)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: ByteArrayOutputStream与InputStream互相转换方式

本文链接: https://www.lsjlt.com/news/159609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ByteArrayOutputStream与InputStream互相转换方式
    目录ByteArrayOutputStream与InputStream互相转换InputStream 转为 ByteArrayOutputStreamByteArrayOutputS...
    99+
    2022-11-12
  • android中怎么实现String与InputStream相互转换
    android中怎么实现String与InputStream相互转换,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一:纯手戳代码:String to InputStreamSt...
    99+
    2023-06-02
  • NDArray与numpy.ndarray互相转换方式
    目录NDArray与numpy.ndarray互相转换NumPy与ndarray简介NumPy简介数组ndarrayNDArray与numpy.ndarray互相转换 import ...
    99+
    2022-11-11
  • java.lang.String和java.util.NClob互相转换方式
    java.lang.String和java.util.NClob互相转换 //NClob或Clob转String类型 public String clob2Str(NClob n...
    99+
    2022-11-12
  • python label与one-hot之间的互相转换方式
    目录label与one-hot之间的互相转换label 转 one-hotone-hot 转labellabel:one-hot 与 标量转化标量 转化为 one-hot 向量one...
    99+
    2023-02-01
    python label python one-hot label与one-hot互相转换
  • Java坐标系相互转换方式
    目录Java坐标系相互转换Java任意两个坐标系转换首先是实体类计算工具类Java坐标系相互转换 1. WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位...
    99+
    2022-11-13
  • C++string和wstring相互转换方式
    目录%S和%s用法string和wstring转换方法总结在C++项目编程中,由于项目工程被设置为Unicode编码,因此经常遇到std::string类型和std::wstring...
    99+
    2023-02-28
    C++ string C++ wstring string和wstring相互转换
  • tensor与numpy的相互转换
    tensor与numpy的相互转换 1. numpy转tensor命令1:torch.tensor()命令2:torch.as_tensor()命令3:torch.from_numpy()区别...
    99+
    2023-09-05
    pytorch
  • string类和LocalDateTime的相互转换方式
    目录string类和LocalDateTime相互转换1.LocalDateTIme转换2.LocalDate转换string转化LocalDateTime类出现的问题string类...
    99+
    2022-11-13
  • Python 图片与pdf相互转换
    使用到第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作。 PDF 转为图片 需新建文件夹 pdf2png import fitz import glob def rightinput(desc): ...
    99+
    2023-01-31
    图片 Python pdf
  • NDArray与numpy.ndarray怎么互相转换
    本篇内容主要讲解“NDArray与numpy.ndarray怎么互相转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NDArray与numpy.ndarray怎么互相转换”吧!NDArray与...
    99+
    2023-06-30
  • PHP数组与JSON互相转换
    PHP数组与JSON互相转换,数组转json:json_encode();json转数组:json_decode(); 使用json_encode转json时会发现中文字符会出现乱码 只需要在json_encode();函数中加入JS...
    99+
    2023-09-10
    json php 数组 Powered by 金山文档
  • Canvas与Image怎么互相转换
    今天小编给大家分享一下Canvas与Image怎么互相转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起...
    99+
    2022-10-19
  • Android中String与int相互转换
    目录一、如何将字串 String 转换成整数 int?这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?二、 如何将整数 int 转换成字串 String...
    99+
    2022-11-12
  • Python字典格式怎么与JSON格式相互转换
    本篇内容介绍了“Python字典格式怎么与JSON格式的相互转换”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python中可以方便的通过J...
    99+
    2023-06-02
  • Jackson中json格式的字符串与对象的互相转换方式
    目录json格式的字符串与对象的互相转换Jackson 简介jackson特点json格式的字符串与对象的转换Jackson进行json转对象,对象转json总结JavaBean准备...
    99+
    2022-11-13
  • 浅谈tensorflow与pytorch的相互转换
    目录1.变量预定义2.创建变量并初始化3.语句执行4.tensor5.其他函数本文以一段代码为例,简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflo...
    99+
    2022-11-12
  • Python - 列表与字典相互转换
    字符串转列表s = 'abc'a = list(s)['a','b','c']列表转为字符串''.join(a)字符串转换为元组s='abc't = tuple(s)元组转换为字符串''.join(t)列表转换为元组l = ['a','b'...
    99+
    2023-01-31
    字典 列表 Python
  • Java和Scala集合间的相互转换方式
    目录Java和Scala集合间的相互转换scala与java互转Java与Scala的集合对比一、Java集合1、Collection=>Set接口2、Collection=&...
    99+
    2022-11-12
  • C#中对象与JSON字符串互相转换的三种方式
    JSON(JavaScriptObject Notation, JS 对象标记) 是一种轻量级的数据交换格式。 关于内存对象和JSON字符串的相互转换,在实际项目中应比较广泛,经过一...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作