把不同类型的输入输出都抽象成流(stream)
按流的方向,可分为输入流 输出流
字节流 字符流
输入 InputStream Reader
输出 OutputStream Writer
上面四个类挺重要的
InputStream类 read()方法 逐字节的以二进制的原始方式读取数据
public int read(); 读入一个字节。-1表示无
public int read(byte b[]); 返回读入的字节数
public int read(byte[] b,int off,int len);
OubputStream类 write()方法 将字节写入流中
public void write(int b); 将参数b的低字节写入到输出流
public void write(byte b[]);将字节数组 b[]中的全部字节顺序写入到输出流中
public void write(byte [] b,int off,int len);//将字节数组b[] 从off开始的len个字节写入到流中
Output的另两个方法是fulsh() close
public void flush();刷新缓存,实际写入到文件、网络
public void close();关闭流
Reader类
与InputStream类相似 都是输入流 Reader类读取的是字符char
Reader类的重要方法是 read()
public int read();//需要将Int转成char
public int read(char b[]);
public int read(char[]b,int off,int len)
Writer类与 Outputstream类相似 都是输出流
Writer类写入的是字符(char ) 不是字节
Writer方法有
public void write(int b);//将参数b的低两字节写入到输出流
public void write(char b[]);//将字符数组b[]中的全部字节顺序写入到输出流
public void write(char []b,int off,int len);//off到 len 个字节写入到流中
public void write(String s);//将字符串写入到流中
public void write(String s,int off,int len);//将字符串写入流中,off是位置 len是长度
public void flush();//刷新流
public void close();//关闭流
节点流和处理流
节点流 (直接与节点(如文件)相连) 相当于原始数据
可以 从 或 向一个特定的地方(节点)读写数据
如文件流FileInputStream 内存流 ByteArrayInputStream
处理流(对节点流或其他处理流进一步处理)(如缓冲、组装成对象,等等)
是对一个已存在的流的链接和封装,处理流又称为过滤流(Filter)
如缓冲处理流 BufferedReader
流的包装
处理流的构造方法总是要带一个其他的流对象作参数
BufferedReader in=New BufferedReader(new FileReader(file));
BufferedReader in2=//典型处理方法
new BufferedReader(
new InputReamReader(//这个函数比较重要 把流封装成reader
new FileInputStream(file),"uft-8"));
s=in2.readLine();
相当于层层封装
常用节点流