1.用于操作字节数组的流对象
ByteArrayInputStream :在构造的时候,需要接收数据源,它是一个字节数组。
ByteArrayOutputStream: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。
因为这两个流对象都在内存中操作数组,并没有使用系统资源。所以,不用进行close关闭。
2.用于操作字符数组的流对象
CharArrayReader : 接收字符数组
CharArrayWriter:
3.重要函数:
size() , 返回缓冲区的当前大小。
toByteArray() ,创建一个新分配的 数组。
4.总结
用流的读写思想来操作数组,读写查询方便,效率高!!!
5.代码实现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();
}
}