OutputStream类层次
JavaIO操作3
缓冲流
• 缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。
• J2SDK提供了四种缓存流:
– BufferedReader
– BufferedWriter
– BufferedInputStream
– BufferedOutputStream

• 缓冲输入流支持其父类的mark()和reset()方法:
– mark()用于“标记”当前位置,就像加入了一个书签,可以使用reset()方法返回这个标记重新读取数据。
• BufferedReader提供了readLine()方法用于读取一行字符串(以\r或\n分隔)。
• BufferedWriter提供了newLine()用于写入一个行分隔符。
• 对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush()方法将会使内存中的数据立刻写出。

流的几种典型流向
• A-file (bytes)FileInputStream (bytes)DataInputStream (String)
• A-File (bytes)FileInputStream (bytes)BufferedInputStream (bytes)DataInputStream (ints,floats,Strings,others)
• (bytes)(bytes)FileReader (chars/Strings)LineNumberReader(chars/strings)

特殊的文件流—RandomAccessFile

• RandomAccessFile是一种特殊的文件流,可以用它在文件的任何地方查找或者插入数据
• RandomAccessFile同时实现了DataInput和DataOutput接口,所以可以用它来读/写文件
• 构造器:
– RandomAccessFile(java.io.File f,String mode)
– RandomAccessFile(String file,String mode)

RandomAccessFile rf1 = new RandomAccessFile(“c:\toAppend.txt”,”rw”);
rf1.seek(rf1.length());
rf1.writeBytes(toCn+”\n”);
rf1.close();

相关文章: