datainputstream和dataoutputstream怎么相互转化
时间: 2024-04-01 09:14:57 浏览: 58
在Java中,可以通过使用ByteArrayOutputStream和ByteArrayInputStream来实现DataInputStream和DataOutputStream之间的转换。
下面是一个将DataOutputStream转换为DataInputStream的示例代码:
```java
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
// 写入数据到DataOutputStream
dos.writeBoolean(true);
dos.writeInt(123);
dos.writeUTF("hello world");
// 将DataOutputStream转换为DataInputStream
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
DataInputStream dis = new DataInputStream(bais);
// 从DataInputStream读取数据
boolean b = dis.readBoolean();
int i = dis.readInt();
String s = dis.readUTF();
System.out.println(b); // true
System.out.println(i); // 123
System.out.println(s); // hello world
```
在上面的示例代码中,首先创建一个ByteArrayOutputStream对象,然后使用DataOutputStream将数据写入到ByteArrayOutputStream中。接下来,使用ByteArrayInputStream将ByteArrayOutputStream转换为字节流,然后使用DataInputStream从字节流中读取数据。
需要注意的是,如果写入的数据类型和读取的数据类型不匹配,会导致读取数据时抛出EOFException异常。因此,在使用DataInputStream和DataOutputStream时,需要确保写入和读取的数据类型匹配。
阅读全文