File类
1.File类是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。
2.File类定义了一些与平台无关的方法操纵文件。
3.java中的目录被当做一种特殊的文件使用,list方法可以返回目录中的所有子目录和文件名。
4.在Unix下路径分隔符(/),Dos下路径分隔符为(/),java可以正确处理Unix和Dos的路径分隔符。
RandomAccessFile类
RandomAccessFile类提供了众多的文件访问方法
RandomAccessFile类支持“随机访问”方式
RandomAccessFile类在随机(相对顺序而言)读写等长记录格式的文件时有很大的优势
RandomAccessFile类仅限于操作文件,不能访问其他的IO设备,如网络,内存映像等
两种构造方法:
new RandomAccessFile(f,"rw");//读写方式
new RandomAccessFile(f,"r");//只读方式
FileInputStream和FIleOutputStream分别用来创建磁盘文件的输入流和输出流对象,通过他们的构造函数来指定文件路径和文件名
创建FileOutputStream实例对象时,指定的文件应当是存在和可读的。创建FileOutputStream实例对象,如果指定的文件已经存在,这个文件中的原来内容将被覆盖清除。
对同一个磁盘文件创建FileInputStream对象的两种方式:
1。FileInputStream inOne=new FileInputStream("hello.test”)
2.File f=new FIle(“hello.test”)
FileInputStream inTwo=new FileInputStream(f)
创建FileOutputStream实例对象时,可以指定还不存在的文件名,不能指定一个已被其他程序打开了的文件。
Reader与Writer类
Reader和Writer是所有字符流类的抽象基类,简化字符串的输入输出编程,即用于读写文本数据。
PipedInputStream与PipedOutputStream类
PipedInputStream类与PipedOutputStream类用于在应用程序中的创建管道通信。
PipedWriter和PipedReader类
使用管道流类,可以实现各个程序模块之间的松耦合通信
用于以IO流的方式来完成对字节数组内容的读写,来支持类似内存虚拟文件或者内存映像文件的功能
ByteArrayInputStream的两个构造函数:
ByteArrayInputStream(byte[] buf)
ByteArrayInputStream(byte[] buf,int offset,int length)
ByteArrayOutputStream的两个构造函数:
ByteArrayOutputStream()
ByteArrayOutputStream(int)
过滤流与包装类
Public DataOutputStream(OutputStream out)
BufferedInputStream与BufferedOutputtStream类
两个缓冲区包装类
缓冲流为IO流增加了内存缓冲区,
允许java程序一次不只操作一个字节
有了缓冲区,在流上执行skip,mark和reset方法成为可能
DataInputStream与DataOutputStream类
三个写入字符串的方法
关闭流栈中的最上层的流对象,将会自动关闭流栈中的所有底层流对象
PrintStream类
提供了一些列print和println方法,可以将基本数据类型的数据格式化成字符串输出
ObjectInputStream与ObjectOutputStream类
这两个包装类,用于从底层输入流中读取对象类型的数据和将对象类型的数据写入到底层输出流。
所读写的对象必须实现了serializable接口,对象中的transient和static类型的成员变量不会被读取和写入。
Java程序与其它进程的数据通信
可以用Process类的实例对象来表示子进程,子进程的标准输入和输出不在连接到键盘和显示器,而是以管道流的形式连接到父进程的一个输出流和输入流对象上。
在程序中用一个对象包装另外的一个对象,这是一种被称为Decorator的设计模式
如果要设计自己的IO包装类,这个类需要继承以FilterXXX命名的类,例如,设计一对输入输出包装类,RecordInputStream和RecordOutputStream,来完成从数据库文件中读取记录和往数据中写入记录
ByteArrayInputStream与ByteArrayOutputStream类