文件流
实现对文件的读取操作:FileInputStream FileReader
实现对文件的写入操作:FileOutputStream FileWriter
缓冲流
ByteArrayInputStream、ByteArrayOutputStream:
在内存中创建一个字节缓冲区实现信息的读取、写入。关闭此流后,类中的方法仍能调用,不会产生异常。
CharArrayReader、CharArrayWriter:
在内存中创建一个字符缓冲区实现信息的读取、写入。
BufferedReader、BufferedWriter:
BufferedInputStream、BufferedOutputStream:
支持其父类的mark()和reset()方法;
BufferedReader、BufferedWriter能够读取写入一行字符串;
刷新缓冲的输出流方法flush();
管道流
PipedInputStream、PipedOutputStream:主要在线程中使用
PipedReader、PiperWriter:
数据流
DataInputStream、DataOutputStream:提供了可以存取各种基本类型数据。
转换流
InputStreamReader、OutputStreamWriter:可以指定编码格式
Print流
PrintWriter:
PrintStream:
1、提供了重载的print、println方法用于多种数据类型的输出;
2、 不会抛出异常;
3、具有自动刷新flush功能。
Object流
1、直接将Object读取写入;
2、transient关键字
不需要序列化的属性。
3、Serializable接口
实现Serializable接口不需要实现任何方法,但被其修饰的需要序列化的类必须有一个空的构造函数。否则在readObject时会出现InvalidClassException异常。
4、Externalizable接口
自定义序列化。
过滤流
FilterInputStream:
BufferedInputStream
DataInputStream
FilterOutputStream:
BufferedOutputStream
DataOutputStream
PrintStream
RandomAccessFile
1) 可通过RandomAccessFile对象完成对文件的读写操作
2) 在产生一个对象时,可指明要打开的文件的性质:r,只读;w,只写;rw可读写
3) 可以直接跳到文件中指定的位置
另:
StringBufferInputStream、StringBufferOutputStream:过时,不能正确将字符转换为字节。从字符串创建流应首选StringReader、StringWriter类。
SequenceInputStream:把多个InputStream合并为一个InputStream,它没有对应SequenceOutputStream。