问题:
实现字节数组和任何基本类型和引用类型执行的相互转换。
提示:
使用ByteArrayInutStream和ByteArrayOutputStream。
代码:
import java.io.*;
import java.util.Arrays;
public class IO1 {
public static void main(String[] args) throws IOException {
// 将基本类型(int)转换为字节数组
int num = 100;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(num);
byte[] intBytes = baos.toByteArray();
dos.close();
System.out.println(intBytes);
System.out.println(Arrays.toString(intBytes));
for(int i=0;i<intBytes.length;i++) {
System.out.println((int) intBytes[i]);
}
// 将引用类型(String)转换为字节数组
String text = "Hello World";
byte[] strBytes = text.getBytes();
System.out.println(strBytes);
System.out.println(Arrays.toString(strBytes));
for(int i=0;i<strBytes.length;i++) {
System.out.print((char) strBytes[i]);
}
System.out.println("");
System.out.println("============");
// 将字节数组转换为基本类型(int)
byte[] intBytes1 = {0, 0, 0, 100};
ByteArrayInputStream bais = new ByteArrayInputStream(intBytes);
DataInputStream dis = new DataInputStream(bais);
int num1 = dis.readInt();
dis.close();
System.out.println(num1);
// 将字节数组转换为引用类型(String)
byte[] strBytes1 = "Hello World".getBytes();
String text1 = new String(strBytes);
System.out.println(text1);
}
}