黑马程序员技术交流社区
标题:
IO流 操作对象
[打印本页]
作者:
wws1214
时间:
2015-7-18 14:43
标题:
IO流 操作对象
1、ObjectOutputStream
2、管道流 : PipedInputStream PipedOutputStream
输入输出可以直接进行连接,通过结合线程使用
3、RandomAccessFile
该类不算是IO体系中子类
而是直接继承自Object
但是它是IO包中的成员。因为它具备读与写功能。
内部封装了一个数组,而且通过指针对数组的元素进行操作。
可以通过getFilePointer获取指针位置
同时可以通过seek改变指针的位置
其实完成读写的原理就是内部封装了字节输入流和输出流。
通过构造函数可以看出,该类只能操作文件
而且操作文件还有模式:只读r,,读写rw等
如果模式为只读r :不会创建文件买回去读取一个已有文件,如果该文件不存在,则异常
如果模式为rw :操作的文件不存在,会自动创建。如果存在则不会覆盖
4、操作基本数据类型 DataInputStream DataOutputStream
例
public static void readData()throws IOException
{
DataInputStream dis=new DataInputStream(new FileInputStream("E:\\java_heima\\data.txt"));
int num=dis.readInt();
boolean b=dis.readBoolean();
double d=dis.readDouble();
System.out.println(num+":"+b+":"+d);
dis.close();
}
public static void writeDate()throws IOException
{
DataOutputStream dos=new DataOutputStream(new FileOutputStream("E:\\java_heima\\data.txt"));
dos.writeInt(234);
dos.writeBoolean(false);
dos.writeDouble(1234.1234);
dos.close();
}
5、操作字节数组 ByteArrayInputStream ByteArrayInputStream
ByteArrayInputStream 在构造的时候,需要接收数据,而且数据源是一个字节数组
ByteArrayInputStream 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。这就是数据的目的地
因为这两个流对象都操作的数组,并没有使用系统资源。
所有,不用进行close关闭
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2