1.数据流介绍
1) DataInputStream和DataoutputStream分别继承自InputStream和OutputStream,它属于处理流,需要分别“套接”在InputStream和OutputStream类型的节点上。
2) DatainputStream和DataOutputStream提供了可以存取与机器无关的Java原始类型数据(如:int,double等)的方法。
3) DataInputStream和DataOutputStream的构造方法为:
a) DataInputStream(InputStream in)
b) DataOutputStream(OutputStreamout)
2.数据流例子
package com.owen.io;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
/**
* 数据流应用
*
* @author OwenWilliam 2016-7-20
* @since
* @version v1.0.0
*
*/
public class TestDataStream
{
public static void main(String[] args)
{
// 使用ByteArray时,内存会先进行分配Array的8个字节空间
// ByteArrayOutputStream将流“管道”对上上面分配的空间
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 由于ByteArrayOutputStream是一个字节一个字节向外读取
// 所以使用DataOutputStream,一次写入8个字节
DataOutputStream dos = new DataOutputStream(baos);
try
{
// 写入随机数和布尔类值
dos.writeDouble(Math.random());
dos.writeBoolean(true);
// ByteArrayInputStream将读取的流“管道”对上已经分配好的Array的内存空间
ByteArrayInputStream bais = new ByteArrayInputStream(
baos.toByteArray());
// Array中有多少个字节
System.out.println(bais.available());
// 一次读取8个字节
DataInputStream dis = new DataInputStream(bais);
//先写入先读出
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
dos.close();
dis.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}