字节流 InputStream/OutputStream
ByteArray
数据被写入一个byte数组, 缓冲区会随着数据的不断写入而自动增长
Piped
多线程可以通过管道进行线程间的通讯
我们在线程A中向PipedOutputStream中写入数据,这些数据会自动的发送到与PipedOutputStream对应的PipedInputStream中,进而存储在PipedInputStream的缓冲中;此时,线程B通过读取PipedInputStream中的数据
使用时需要注意设置合适的缓冲区大小, 不会自动增长
Object
对基本数据和实现了 java.io.Serializable 接口的对象进行序列化操作支持
序列化不会自动保存static和transient变量”,因此我们若要保存它们,则需要通过writeObject()和readObject()去手动读写
File
读写文件
Buffered
继承自FileterStream,提供内部缓冲区数组
内部使用volatile和AtomicReferenceFieldUpdater保证字段更新的原子性
Data
许应用程序以与机器无关方式从底层输入流中读写基本 Java 数据类型
PrintStream
允许格式化打印流
System.out is instance of PrintStream
RandomAccessFile
支持对文件随机访问的读取和写入
参考文章