°

55.字节数组流

13.字节数组流

ByteArrayInputStream和ByteArrayOutputStream

1)数据源或目的地为:字节数组

2)只有字节流,没有字符流

3)字节流

package com.bjsxt;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Date;

public class Test {
	public static void main(String[] args) throws IOException, ClassNotFoundException {
		byte[] buf = write(); //调用写对象的方法
		read(buf);  //调用读对象的方法
	}
	public static byte[] write() throws IOException {
		
		//创建字节数组流
		ByteArrayOutputStream baos = null;
		ObjectOutputStream oos = null;
		
		baos = new ByteArrayOutputStream();  //创建字节数组流对象,目的地是字节数组,底层创建一个32的字节数组
		oos = new ObjectOutputStream(baos);
		
		oos.writeInt(98);
		oos.writeDouble(98.5);
		oos.writeChar('a');
		oos.writeBoolean(true);
		oos.writeObject(new Date(1000));
		
		//关闭流
		if(oos!=null) {
			oos.close();
		}
		
		return baos.toByteArray();
	}
	public static void read(byte[] buf) throws IOException, ClassNotFoundException {
		ByteArrayInputStream bais = null;
		ObjectInputStream ois = null;
		
		//创建对象
		bais = new ByteArrayInputStream(buf);
		ois = new ObjectInputStream(bais);
		
		//读数据
		System.out.println(ois.readInt());
		System.out.println(ois.readDouble());
		System.out.println(ois.readChar());
		System.out.println(ois.readBoolean());
		System.out.println(ois.readObject());
		
		//关闭数据流
		if(ois!=null) {
			ois.close();
		}
		
	}

}

打赏
  喜欢