标签:场景 mat 大小 抽象 默认 允许 writer ade 性能
InputStream
特点: 读取字节流的抽象类
BufferedInputStream
特点:
InputStream
中读取流mark()
和 reset()
方法fill()
方法ByteArrayInputStream
特点:
mark()
和 reset()
DataInputStream
特点:
DataOutputStream
写入流再用 DataInputStream
读出FilterInputStream
特点:
OutputStream
特点: 写入字节流的抽象类
BufferedOutputStream
特点: 增加了缓冲区, 使得不用每次 write()
都调用底层流 write()
ByteArrayOutputStream
特点: 将字节写入内存中的一段区域
DataOutputStream
特点:
DateInputStream
FilterOutputStream
特点: 为其他流提供附加功能的装饰流父类
Reader
特点: 读取字符流的抽象类
BufferedReader
特点:
Reader
都被 BufferedReader
所装饰. 否则每个 read()
操作都会调用底层 read()
的操作.LineNumberReader
特点: 在 BufferedReader
基础上保留了追踪行号
CharArrayReader
特点: 从内存缓冲区中读取字符到另外一个缓冲区
InputStreamReader
特点:
read()
会触发一个或多个字节的读取操作. 为了更有效的将字节转化成字符, 有时会预读一些字节FileReader
特点:
FileInputStream
实力构造一个InputStreamReader
对象,然后将这个对象传到其Reader
构造函数.FilterReader
特点: 抽象类, 用来读取Filtered
字符流
PushbackReader
特点: 允许往字符流末尾添加一个或者多个字符
PipedReader
特点: 从管道PipedWriter
中读取字符
StringReader
特点: 从String
中读取字符
Writer
特点: 写入字符流的抽象类
BufferedWriter
特点:
newLine()
会往输出流中写入一个 line.separator
Writer
都被 BufferedWriter
所装饰. 否则每个 writer()
操作都会调用底层 write()
的操作CharArrayWriter
特点:
Writer
使用toCharArray()
或者 toString()
直接获取到close()
方法没有什么作用. 即使调用了close()
后, 再调用其他方法, 也不会产生异常OutputStreamWriter
特点:
write()
方法, 都会导致对字符的编码, 编码后的字节流一直在 buffer 中累计, 在调用底层字节流的write()
方法时写入BufferedWriter
连用FileWriter
特点:
FileOutputStream
实力构造一个OutputStreamWriter
对象,然后将这个对象传到其Writer
构造函数.FilterWriter
特点: 抽象类, 用来写入Filtered
字符流
PipedWriter
特点: 向管道写入字符流
PrintWriter
特点:
PrintWriter
用来格式化对象并输出到字符流中PrintWriter
包含了很多类型的写出方法, 但是不包括原始byte
类型PrintStream
, 即使打开了 automatic flushing , 方法println
, printf
或者 format
方法调用后才会 flush. StringWriter
特点: 往StringBuffer
中写入数据
问: Externalizable
和 Serializable
的区别是什么?
答: 由于Serializable
是一个标志接口. 使用Serializable
不需要实现任何方法, Java runtime 会使用反射来 marshal 和 unmarshal 对象.
在Java 旧版本中, 反射非常慢, 所以 serializing 大对象会有一定的性能问题. 为了解决这个问题, Java 提供了 Externalizable
接口让开发人员自定义 marshal 和 unmarshal 方法.
Externalizable
. 标签:场景 mat 大小 抽象 默认 允许 writer ade 性能
原文地址:http://www.cnblogs.com/pragmatic/p/6143067.html