流
1. 根据数据流的方向不同,分为输入流和输出流。
2. 根据数据流的单位不同,分为字节流和字符流。
3. 根据功能不同,分为节点流和处理流。
4. InputStream、OutputStream、Reader、Writer四个抽象类。
1)InputStream是所有字节输入流的超类。基本方法有:
int | available() |
void | close() |
void | mark(int readlimit) |
boolean | markSupported() |
abstract int | read() |
int | read(byte[] b) |
int | read(byte[] b, int off, int len) |
void | reset() |
long | skip(long n) |
2)OutputStream是所有字节输出流的超类。基本方法有:
void | close() |
void | flush() |
void | write(byte[] b) |
void | write(byte[] b, int off, int len) |
abstract void | write(int b) |
3)Reader是字符输入流。基本方法有:
abstract void | close() |
void | mark(int readAheadLimit) |
boolean | markSupported() |
int | read() |
int | read(char[] cbuf) |
abstract int | read(char[] cbuf, int off, int len) |
int | read(CharBuffer target) |
boolean | ready() |
void | reset() |
long | skip(long n) |
4)Writer是字符输出流。主要方法有:
append(char c) | |
append(CharSequence csq) | |
append(CharSequence csq, int start, int end) | |
abstract void | close() |
abstract void | flush() |
void | write(char[] cbuf) |
abstract void | write(char[] cbuf, int off, int len) |
void | write(int c) |
void | |
void |
5. 节点流:可以从一个特定的数据源(节点),读写数据。
类 型 | 字 符 流 | 字 节 流 |
File(文件) | FileReader FileWriter | FileInputStream FileOutputStream |
Memory Array | CharArrayReader CharArrayWriter | ByteArrayInputStream ByteArrayOutputStream |
Memory String | StringReader StringWriter | - |
Pipe(管道) | PipedReader PipedWriter | PipedInputStream PipedOutputStream |
6. 处理流:是连接在已存在的流上,通过对数据的处理是程序具有更为强大的读写功能。
处理类型 | 字 符 流 | 字 节 流 |
Buffering | BufferedReader BufferedWriter | BufferedInputStream BufferedOutputStream |
Filtering | FilterReader FilterWriter | FilterInputStream FilterOutputStream |
Converting between bytes and character | InputStreamReader OutputStreamWriter |
|
Object Serialization | - | ObjectInputStream ObjectOutputStream |
Data conversion | - | DataInputStream DataOutputStream |
Counting | LineNumberReader | LineNumberInputStream |
Peeking ahead | PusbackReader | PushbackInputStream |
Printing | PrintWriter | PrintStream |