实现功能:
1.将基本数据类型,如int, long, double, 及String类型数据写入到 byte[]中,
2.从 byte[]中将数据读取到 int, long, double, 及String类型变量中
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: " + recDou + "
"
+ "recL: " + recL + "
"
+ "recS: " + 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;
}
}
运行结果:
