java TestDataSteam

package org.lunzi.test.io;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public class TestDataSteam {

public static void main(String[] args) {
/**
* java.lang.Object
* java.io.OutputStream
         *    java.io.ByteArrayOutputStream
*    此类实现了一个输出流,其中的数据被写入一个 byte 数组。
*    缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。
*    此类中的方法在关闭此流后仍可被调用
*/

ByteArrayOutputStream baos = new ByteArrayOutputStream();
/**
* java.lang.Object
         *   java.io.OutputStream
         *     java.io.FilterOutputStream
         *       java.io.DataOutputStream
*       数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。
*       然后,应用程序可以使用数据输入流将数据读入。
*/

DataOutputStream dos = new DataOutputStream(baos);

try {
dos.writeDouble(Math.random());
dos.writeBoolean(true);

/**
* java.lang.Object
   *   java.io.InputStream
             *     java.io.ByteArrayInputStream
*     包含一个内部缓冲区,该缓冲区包含从流中读取的字节。
*      内部计数器跟踪 read 方法要提供的下一个字节。
*/

ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
System.out.println(bais.available());
/**
* java.lang.Object
   *   java.io.InputStream
             *     java.io.FilterInputStream
             *       java.io.DataInputStream
             *       数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
             *       应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
             *       对于多线程访问不一定是安全的。 线程安全是可选的,它由此类方法的使用者负责。
*/

DataInputStream dis = new DataInputStream(bais);
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
dos.close();
dis.close();
} catch (IOException e) {
e.printStackTrace();
}


}

}

lunzi   2008-11-08 21:38:22 评论:0   阅读:234   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog