
一. 概念
流动,从一端流向另一端,源头与目的地
以程序为中心,程序与 数组/文件/网络连接/数据库,
二. io流分类
- 流向:输入流与输出流
- 数据 :字节楼:二进制,所有文件都可以操作,包括纯文本,doc,音频,视频
字符流:文本文件,只能处理纯文本
- 功能:节点:包裹源头
处理:增强功能,提供性能
三. 字符流与字节流与文件
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, |
void |
reset() |
long |
skip(long n) |
输出流OutputStream
void |
close() |
void |
flush() |
void |
write(byte[] b) |
void |
write(byte[] b, int off, int len) |
abstract void |
write(int b) |
2.字符流
输入流Reader
abstract void |
close() 关闭该流并释放与之关联的所有资源。 |
void |
mark(int readAheadLimit) 标记流中的当前位置。 |
boolean |
markSupported() 判断此流是否支持 mark() 操作。 |
int |
read() 读取单个字符。 |
int |
read(char[] cbuf) 将字符读入数组。 |
abstract |
read(char[] cbuf, 将字符读入数组的某一部分。 |
int |
read(CharBuffer target) 试图将字符读入指定的字符缓冲区。 |
boolean |
ready() 判断是否准备读取此流。 |
void |
reset() 重置该流。 |
long |
skip(long n) 跳过字符。 |
输出流Writer
Writer |
append(char c) 将指定字符添加到此 writer。 |
Writer |
append(CharSequence csq) 将指定字符序列添加到此 writer。 |
Writer |
append(CharSequence csq, int start, 将指定字符序列的子序列添加到此 writer.Appendable。 |
abstract |
close() 关闭此流,但要先刷新它。 |
abstract |
flush() 刷新该流的缓冲。 |
void |
write(char[] cbuf) 写入字符数组。 |
abstract |
write(char[] cbuf, 写入字符数组的某一部分。 |
void |
write(int c) 写入单个字符。 |
void |
write(String str) 写入字符串。 |
void |
write(String str, 写入字符串的某一部分。 |