您的位置:首页 > 编程语言 > Java开发

JAVA IO流实现字节数组与任何基本类型和引用类型的相互转换

2017-04-12 12:44 295 查看
package com.jyd.demo;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
*
* 类名: IODemo03
* 备注: 实现字节数组和任何基本类型和引用类型的相互转换。
* 使用ByteArrayInutStream和ByteArrayOutputStream。
* 时间: 2017年4月9日 下午4:56:33
* 作者:姜依德
* @version
* @since JDK 1.8
*/
public class IODemo03 {
boolean flag = false;
public static void main(String[] args) throws IOException, ClassNotFoundException {
IODemo03 demo03 = new IODemo03();
test01(demo03.flag);

Persons p = new Persons();
test02(p);
}
//字节数组和布尔类型的转换  其它基本数据类型类似
public static void test01(boolean flag) throws IOException{
//输出流 输出一个boolean类型的数据
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeBoolean(flag);
byte[] bytes = baos.toByteArray();
//输入流 读取一个boolean类型的数据
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
DataInputStream dis = new DataInputStream(bais);
boolean f = dis.readBoolean();
System.out.println(f);
//关闭流释放资源
dos.close();
bais.close();
}
//字节数组和引用数据类型之间的转换
public static void test02(Persons p) throws IOException, ClassNotFoundException{
//输出流 输出一个Persons类型的数据
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(p); //对象序列化
byte[] bytes = baos.toByteArray();
//输入流 读取一个boolean类型的数据
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
Persons p1 = (Persons)ois.readObject();
System.out.println(p1);
//关闭流释放资源
oos.close();
bais.close();
}
}

class Persons implements Serializable{
public Persons(){
System.out.println("你好!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java io流