黑马程序员_IO流_数组流对象ByteArrayInputStream/ByteArrayOutputStream及基本数据类DataInputStream与DataOutputStream...

-------android培训java培训、期待与您交流! ----------


1).用于操作字节数组的流对象
ByteArrayInputStream :在构造的时候,需要接收数据源,它是一个字节数组
ByteArrayOutputStream: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。
因为这两个流对象都在内存中操作数组,并没有使用系统资源。所以,不用进行close关闭。

2).用于操作字符数组的流对象
CharArrayReader : 接收字符数组
CharArrayWriter:

重要函数:
size() , 返回缓冲区的当前大小。
toByteArray() ,创建一个新分配的 数组。

总之,用流的读写思想操作数组读写查询方便,效率高!!!


import java.io.*;
class ByteArrayStream 
{
	public static void main(String[] args) 
	{
		ByteArrayInputStream bis = new ByteArrayInputStream("ABCDEFD".getBytes());
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		int by = 0;
		while((by=bis.read())!=-1)
		{
			bos.write(by);
		}
		System.out.println(bos.toString());
		bos.writeTo(new FileOutputStream("a.txt"));//还可以使用writeTo()方法,一次性写入文本中去

	}
}


/*
DataInputStream与DataOutputStream
可以用于操作基本数据类型的数据的流对象。
Strawberry2013-5-5
*/
import java.io.*;
class DataStreamDemo 
{
	public static void main(String[] args) throws IOException
	{
		writeData();
		readData();
	}
	public static void readData()throws IOException
	{
		DataInputStream dis = new DataInputStream(new FileInputStream("data.txt"));

		int num = dis.readInt();	//	读取与写入的相对应~~~
		boolean b = dis.readBoolean();
		double d = dis.readDouble();

		System.out.println("num="+num);
		System.out.println("b="+b);
		System.out.println("d="+d);

		dis.close();
	}
	public static void writeData()throws IOException
	{
		DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.txt"));

		dos.writeInt(234);
		dos.writeBoolean(true);
		dos.writeDouble(9887.543);
		dos.close();
		
	}
}


你可能感兴趣的:(黑马程序员_IO流_数组流对象ByteArrayInputStream/ByteArrayOutputStream及基本数据类DataInputStream与DataOutputStream...)