java I/O流、输入输出文件操作
java中针对输入/输出定义了相对应的接口,java的I/O包括:
1.字节流
2.字符流
3.文件流
4.对象流
5.线程之间的通信的管道流
处理接口
1.处理字节流的DataInout和DataOutput接口
2.处理对象流的ObjectInput和ObjecetOutput接口
3.筛选文件名的FileNameFilter接口
4.处理对象流的Serializable接口。该对象是对象序列化开关,不含任何抽象方法或常量,输入/输出的对象在传输前都必须实现该接口
抽象类
1.字节流的抽象类InputStream和OutputStream
2.过滤流的抽象类FilterOutputStream和FilterInputStream
3.字符流的抽象类Reader和Writer
4.压缩抽象类InflaterInputStream和DeflaterOutputStream
File类
RamdomAccessFile 提供了对文件进行随机访问的功能,它继承了Object类,实现了DataInput和DataOut接口,因此RandomAccessFile类有输入和输出功能,可以访问文件的任意位置。RandomAccessFile类具有以下常用方法
1.length()获取文件长度
2.seek()查找文件记录
3.close()关闭文件资源
4.readDouble()、readInt()、readChar()读取文件内容
5.skipBytes()跳过指定字节
file类只操作文件在磁盘的属性,读写文件内容的功能需要流类提供
字节流
字节输入流均为InputStream的子类,它们需要实现DataInput接口,DataInputStream是一个实现了该接口的类。字节输出流均为OutputStream的子类,需要DataOutput接口,DataOutStream是一个实现了该接口的类
字节流中典型流类
1.DataInputStream
以二进制文件作为构造方法参数创建FileInputStream类,又以FileInputStream类作为构造方法参数创建DataInputStream类
方法:
read()数据读入
available()获取可读字节数
skip()跳过读入字节
close()关闭输入流
2.DataOutputStream
以二进制文件作为构造方法参数创建FileOutputStream类,又以FileOutputStream类作为构造方法参数创建DataOutputStream类
方法:
writeDouble();writeInt();writeChar();write() 写入输出流
flush()清空输出缓冲区,强制写入输出流
3.ByteArrayInputStream
直接访问内存,读取字节数组中的数据
父类:InputStream
方法:read();skip();available();markSupported();mark();reset();close()
4.ByteArrayOutputStream
直接访问内存,写入数据到字节数组
父类:OutputStream
方法:
write();writeTo();reset();close();
toByteArray()把缓存区内容复制到新创建的数组
size()取得当前缓冲区大小
toString把数据内容转化为ENC编码的字符串
5.StringReader
以字符串的方式读取内容
父类:Reader
read()读取缓存区中的字符串并转换成字节