Reader、Writer
Reader和Writer提供兼容Unicode与面向字符编码的I/O操作。让Reader和Writer继承层次结构主要是用来实现国际化。
InputStream和OutputStream只能出理8为的字节流,不能很好的出理16位的Unicode字符。
适配器: InputStreamReader用于InputStream类型转为Reader类型。OutputStreamWriter用于OutputStream类型转为Writer.
数据的来源和去处
Java1.0类 | 相应Java1.1类 |
---|---|
InputStream | Reader 适配器:InputStreamReader |
OutputStream | Writer 适配器:OutputStreamWriter |
FileInputStream | FileReader |
FileOutputStream | FileWriter |
StringBufferInputStream(已弃用) | StringReader |
(无相应类) | StringWriter |
ByteArrayInputStream | CharArrayReader |
ByteArrayOutputStream | CharArrayWriter |
PipedInputStream | PipedReader |
PipedOutputStream | PipedWriter |
更改流的行为(Filter)
过滤器 Java1.0类 | 相应Java1.1类 |
---|---|
FilterInputStream | FilterReader |
FilterOutputStream | FilterWriter(抽象类,没有子类) |
DataInputStream | 使用DataInputStream(使用readLine()时使用BufferdReader) |
BufferdInputStream | BufferdReader |
BufferdOutputStream | BufferdWriter |
LineNumberInputStream | LineNumberReader |
PrintStream | PrintWriter |
StreamTokenizer | (使用接受Reader的构造器) |
PushbackInputStream | PushbackReader |
注意: 一切使用readLine()的都推荐使用BufferReader。除了这一点,DataInputStream仍是I/O类库的首选。
未发生变化的类
以下这些java1.0的类在java1.1中没有对应类 |
---|
DataInputStream |
File |
RandomAccessFile |
SquenceInputStream |
RandomAccessFile
RandomAccessFile使用于大小已知的记录组成的文件。
- getFilePointer()用于查找当前所处的位置。
- seek()用于在文件内移置新的位置。
jdk1.4中,RandomAccessFile大部分功能被nio的存储映射文件所取代。