1、Java 语言中I/O流分类:
分为输入流(Input Stream) 和输出流(Output Stream)
分为节点流(Node Stream) 和处理流(Processing Stream)
分为字符流(Character Stream) 和字节流(Byte Stream)
人站在程序的角度来看,如果数据从外界传入程序中,则为输入流,例如从键盘输入数据到程序中;如果数据从程序中传到外界,则为输出流,例如程序中的数据输出到显示器中,或者输出到文件中。
Java语言中流是单向的,输入流只能读数据,输出流只能写数据。例外特例是:java.io.RandomAccessFile类,既可以从文件中读数据,也可以向文件中写数据。
从数据流所关联的是数据源还是其他数据流,可以分为节点流和处理流,节点流直接关联到数据源,处理流封装已经存在的流。
从传输数据的“颗粒大小”划分,字节流以字节为单位进行数据传输,字符流以字符为单位进行数据传输,在Java语言中,以InputStream或OutputStream结尾的类型为字节流,以Reader或Writer结尾的为字符流。
2、InputStream 字节输入流的父类
三个基本的read()方法
int read()
int read(byte[] buffer)
int read(byte[] buffer,int offset,int length)
其它方法
void close()
int available();
skip(long n);
boolean markSupportet() //测试inputstream 的各种子类是否具备做标记的功能
void mark(int readlimit); //对输入流做标记
void reset(); //跳转到标记处
3、OutputStream 字节输出流的父类
三个基本的write()方法:
void write(int c);
void write(byte[] buffer);
void write(byte[] buffer,int offset,int length);
其它方法:
void close();
void flush(); //清空缓冲区
4、Reader 字符输入流的父类
三个基本的read()方法
int read()
int read(byte[] cbuf)
int read(byte[] cbuf,int offset,int length)
其它方法
void close()
boolean ready(); //判断输入流是否准备就绪
skip(long n);
boolean markSupportet() //测试inputstream 的各种子类是否具备做标记的功能
void mark(int readlimit); //对输入流做标记
void reset(); //跳转到标记处
5、Writer 字符输出流的父类
五个基本的write()方法:
void write(int c);
void write(char[] cbuf);
void write(char[] cbuf,int offset,int length);
void write(String string);
void write(String string,int offset,int length);
其它方法:
void close();
void flush(); //清空缓冲区
6、常用I/O流类型
FileInputStream 和FileOutputStream
FileInputStream用于读取本地文件中字节数据,FileOutputStream用于将字节数据写出到文件中
//文件复制功能
import