1. IO
- java.io 包中定义了多个流类型来实现输入输出功能,可以从不同角度对其进行分类。按数据流处理方向不同可分为:输入流和输出流。 按处理数据单位不同可分为:字节流和字符流。按照功能不同可分为:节点流和处理流。
- 字符流和字节流。 字节流按字节读取数据,每个字节是8bit。字符流按字符读取数据,每个字符是2个字节,也就是16bit。
- 节点流:从特定的数据源(节点)读写数据(文件,内存)。 处理流:“连接”在已存在的流(节点流或者处理流)之上,对数据进行处理为程序提供更强大的读写功能。
2. InputStream It's a abstract class.
Subclass:
- FileInputStream
- PipedInputStream
- ByteArrayInputStream
- StringBufferInputStream
- SequenceInputStream
- ObjectInputStream
- FilterInputStream
methods:
- int read(). 读取一个字节并以数字形式返回(0 - 255), 返回-1 表示已到输入流末尾
- int read(byte[] buffer)读取一系列的字节并存储到一个数组buffer里,返回的是实际读取的字节数,返回-1表示已到输入流末尾
- int read(byte[] buffer, int offset, int length)读取一定长度的字节存储到一个数组buffer里,从offset开始,返回的是实际读取的字节数,返回-1表示已到输入流末尾
- void close()关闭流,释放内存资源
- long skip(long n)跳过n个字节不读,返回实际跳过的字节数
3. OutPutStream
subclass:
- FileOutputStream
- PipedOutputStream
- ByteArrayOutputStream
- ObjectOutputStream
- FilterOutputStream
methods:
- void write(int b) 向输出流中写入一个字节的数据
- void write(byte[] buffer) 将一个字节类型的数组写入输出流
- void write(byte[] buffer, int offset, int length) 将一个字节类型的数组的部分写入输出流,从offset开始,写入长度为length
- void close() 关闭流,释放资源
- void flush() 将输入流中缓存的所有数据写入目的地
- 在close之前必须先flush
4. Reader
subclass:
- BufferedReader
- charArrayReader
- InputStreamReader
- FilterReader
- PipedReader
- StringReader
methods:
- int read()
- int read(char[] buffer)
- int read(char[] buffer, int offset, int length)
- void close()
- long skip(long n)
5. Writer
subclass:
- BufferedWriter
- CharArrayWriter
- OutputStreamWriter
- FileWriter
- PipedWriter
- StringWriter
- FilterWriter
methods
- void write(int c)
- void write(char[] buffer)
- void write(char[] buffer, int offset, int length)
- void write(String s) 内部调用了String 的 toCharArray()方法
- void write(String s, int offset, int length)
- void flush()
- void close()