`
shiwj1010
  • 浏览: 97461 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ByteArrayOutputStream的用法

    博客分类:
  • j2se
阅读更多
ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。具体用法如下:
ByteArrayOutputStream:    可以捕获内存缓冲区的数据,转换成字节数组

ByteArrayInputStream: 可以将字节数组转化为输入流
	public static void main(String[] args) {
		int a = 0;
		int b = 1;
		int c = 2;
		ByteArrayOutputStream bout = new ByteArrayOutputStream();
		bout.write(a);
		bout.write(b);
		bout.write(c);
		byte[] buff = bout.toByteArray();
		for (int i = 0; i < buff.length; i++)
			System.out.println(buff[i]);
		System.out.println("***********************");
		ByteArrayInputStream bin = new ByteArrayInputStream(buff);
		while ((b = bin.read()) != -1) {
			System.out.println(b);
		}
	}

如上所示,ByteArrayOutputStream把内存中的数据读到字节数组中,而ByteArrayInputStream又把字节数组中的字节以流的形式读出,实现了对同一个字节数组的操作.

综合DataOutputStream&DataInputStream的作用和功能,与ByteArrayOutputStream和ByteArrayInputSream使用将更方便.此时DataOutputStream&DataInputStream封闭了字节流,以适当的形式读出了字节数组中的数据.如下所示:
	public static void main(String[] args) throws IOException {
		ByteArrayOutputStream bout = new ByteArrayOutputStream();
		DataOutputStream dout = new DataOutputStream(bout);
		String name = "xxy";
		int age = 84;
		dout.writeUTF(name);
		dout.writeInt(age);
		byte[] buff = bout.toByteArray();
		ByteArrayInputStream bin = new ByteArrayInputStream(buff);
		DataInputStream dis = new DataInputStream(bin);
		String newName = dis.readUTF();
		int newAge = dis.readInt();
		System.out.println(newName + ":" + newAge);
	}
分享到:
评论

相关推荐

    ByteArrayOutputStream简介和使用_动力节点Java学院整理

    ByteArrayOutputStream 是字节数组输出流。它继承于OutputStream。 ByteArrayOutputStream 中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。

    Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重复读取配置文件的方法

    主要介绍了Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重复读取配置文件的方法,需要的朋友可以参考下

    IO流各个类的使用方法

    介绍了,下面这些类的具体使用方法,非常详细,值得一看 File FileFilter RandomAccessFile 【字节流】 InputStream OutputStream FileInputStream FileOutputStream DataInputStream DataOutputStream ...

    android Bitmap用法总结

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); } 4、byte[] → Bitmap private Bitmap Bytes2Bimap(byte[] b){ if(b...

    JAVA IO流缓冲字节流缓冲字符流等流经典代码示例加注释总结.rar

    2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、OutputStreamWriter、FileOutputStream、InputStreamReader...演示错误用法和经典用法。 4、代码的结构可查看README文件。

    AndroidHttpURLConnection发送GET请求

    使用InputStream 的read方法以及ByteArrayOutputStream的wirte方法 inputStream.read(buffer) outputStream.write(buffer, 0, len) outputStream.toByteArray() 最后调用disconnect()方法将HTTP连接关掉 conn....

    详解Java中ByteArray字节数组的输入输出流的用法

    ByteArrayInputStream和ByteArrayOutputStream分别集成自InputStream和OutputStream这两个输入和输出流,这里我们就来详解Java中ByteArray字节数组的输入输出流的用法,需要的朋友可以参考下

    Android编程使用Intent传递图片的方法详解

    本文实例讲述了Android编程使用Intent传递图片的方法。分享给大家供大家参考,具体如下: 基本思路是先把bitmap转化为byte数组,用Intent传递数组,在将数组转化为bitmap bitmap转化为byte数组的方法: private ...

    Android实现压缩字符串的方法示例

    使用到的类库 GZIPOutputStream 代码示例 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util....

    clj-kryo:Clojure 库到 Kryo 序列化 API

    ( let [bos ( ByteArrayOutputStream. )] ( with-open [out ^Output ( kryo/make-output bos)] ( kryo/write-object out expr)) ( let [bis ( ByteArrayInputStream. ( .toByteArray bos))] ( with-open [in ^...

    Android编程获取图片数据的方法详解

    本文实例讲述了Android编程获取图片数据的方法。分享给大家供大家参考,具体如下: 网络的访问在我们日常生活中太重要了,如果没有网络我们的生活将会是什么样子呢?Android手机和浏览器也是一样的,也可以通过网络...

    android-query 开发包

    public class PredefinedBAOS extends ByteArrayOutputStream //管理缓冲流 返回流 public class Progress implements Runnable //进度条管理 public class RatioDrawable extends BitmapDrawable //图片 public ...

    JAVA基础课程讲义

    ByteArrayInutStream和ByteArrayOutputStream 154 BufferedInputStream和BufferedOutputStream 156 DataInputStream和DataOutputStream 157 ObjectInputStream和ObjectOutputStream 158 PrintStream 158 Reader 158 ...

    IO体系.java

    InputStream ... |--ByteArrayOutputStream/:实现了一个输出流,其中的数据写入到一个byte数组。 | 使用toByteArray()和toString()获取数据。关闭无效,依然可以调用。不会产生任何IOException异常。

    tr13:基于紧凑型 Trie 的 Thinglet

    目的 Tr13 是一个库,用于构建和使用只读紧凑(内存高效)内存中的数据结构,使用原始(字节序列, byte[] )键和值。... 以流方式构建原始特里树结构,将其构建到内存缓冲区(如ByteArrayOutputStream )或

    Java之IO流学习总结

    Reader 中各个类的用途和使用方法基本和InputStream 中的类使用一致。后面会有Reader 与InputStream 的对应关系。 5.字符输出流Writer 在上面的关系图中可以看出: Writer 是所有的输出字符流的父类,它是一个...

    JDK_API_1_6

    ByteArrayOutputStream 此类实现了一个输出流,其中的数据被写入一个 byte 数组。 CharArrayReader 此类实现一个可用作字符输入流的字符缓冲区。 CharArrayWriter 此类实现一个可用作 Writer 的字符缓冲区。 ...

    8583报文解析框架Simple8583.zip

    CHAR(asc编码,直接使用字符串的getBytes(ENCODING)方法获取字节数组)  BINARY(二进制编码,在打包时将8位01值组装为一个字节), NUMERIC(BCD编码,即8421码), ...

Global site tag (gtag.js) - Google Analytics