[code]
package com.testdatastream;
import java.io.* ;
public class Test {
/**
* @param args
* IO_ DataInputStream && DataOutputStream
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
DataOutputStream dos = new DataOutputStream(baos) ;
try {
dos.writeDouble(Math.random()) ; //读入随机产生的一个数
dos.writeBoolean(true) ;
System.out.println(dos.size()) ; //输出到目前为止写入此数据输出流的字节数
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()) ; //toByteArray()创建一个新分配的 byte 数组
System.out.println(bais.available()) ; //返回可从此输入流读取(或跳过)的剩余字节数
DataInputStream dis = new DataInputStream(bais) ;
System.out.println(dis.readDouble()) ; //先写入的必须先读出,不能先读Boolean
System.out.println(dis.readBoolean()) ;
dos.close() ;
dis.close() ;
} catch (IOException e) {
e.printStackTrace() ;
}
}
}
[/code]
package com.testdatastream;
import java.io.* ;
public class Test {
/**
* @param args
* IO_ DataInputStream && DataOutputStream
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
DataOutputStream dos = new DataOutputStream(baos) ;
try {
dos.writeDouble(Math.random()) ; //读入随机产生的一个数
dos.writeBoolean(true) ;
System.out.println(dos.size()) ; //输出到目前为止写入此数据输出流的字节数
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()) ; //toByteArray()创建一个新分配的 byte 数组
System.out.println(bais.available()) ; //返回可从此输入流读取(或跳过)的剩余字节数
DataInputStream dis = new DataInputStream(bais) ;
System.out.println(dis.readDouble()) ; //先写入的必须先读出,不能先读Boolean
System.out.println(dis.readBoolean()) ;
dos.close() ;
dis.close() ;
} catch (IOException e) {
e.printStackTrace() ;
}
}
}
[/code]
本文通过一个具体的Java程序示例介绍了如何使用DataInputStream和DataOutputStream进行数据的写入与读取操作。示例中首先创建了DataOutputStream来写入一个随机产生的浮点数和一个布尔值,然后通过DataInputStream从字节数组中读取这些数据。
3万+

被折叠的 条评论
为什么被折叠?



