package com.machuang.io.others;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class DataInteractiveWithByteArray {
public static void main(String[] args) throws IOException {
byte[] recBytes = writeTypesToBytes();
readTypesFromBytes(recBytes);
}
public static void readTypesFromBytes(byte[] srcbytes) throws IOException {
// 关联写出的读取的 byte[]
DataInputStream dis = new DataInputStream(
new BufferedInputStream( new ByteArrayInputStream(srcbytes) )
);
// 读取操作
double recDou = dis.readDouble();
long recL = dis.readLong();
String recS = dis.readUTF();
dis.close();
System.out.println("recDou:\t" + recDou + "\n"
+ "recL:\t" + recL + "\n"
+ "recS:\t" + recS);
}
public static byte[] writeTypesToBytes() throws IOException {
// 要写出的数据
double dataDou = 3.6;
long numL = 100L;
String dataStr = "architecture";
// 关联写出的 ByteArrayOutputStream
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(
new BufferedOutputStream( bos )
);
dos.writeDouble(dataDou);
dos.writeLong(numL);
dos.writeUTF(dataStr);
dos.flush();
byte[] dataBytes = bos.toByteArray();
dos.close(); // 关闭流
return dataBytes;
}
}