实现功能:
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:\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; } }
运行结果: