一、io流的三种分类方式

1.按流的方向分为:输入流和输出流

2.按流的数据单位不同分为:字节流和字符流

3.按流的功能不同分为:节点流和处理流

二、inputstream的基本方法:

int read() throws ioexception 读取一个字节以整数形式返回,如果返回-1已到输入流的末尾

void close() throws ioexception 关闭流释放内存资源

long skip(long n) throws ioexception 跳过n个字节不读

outputstream的基本方法:

void write(int b) throws ioexception 向输出流写入一个字节数据

void flush() throws ioexception 将输出流中缓冲的数据全部写出到目的地

三、io流的四大抽象类:

字符流: reader writer

字节流:inputstream(读数据) outputstream(写数据)

四、writer的基本方法

void write(int c) throws ioexception 向输出流写入一个字符数据

void write(string str) throws ioexception 将一个字符串中的字符写入到输出流

void write(string str,int offset,int length) 将一个字符串从offset开始的length个字符写入到输出流

void flush() throws ioexception 将输出流中缓冲的数据全部写出到目的地

reader的基本方法:

int read() throws ioexception 读取一个字符以整数形式返回,如果返回-1已到输入流的末尾

五、File类:

java.io.file类是专门对文件进行操作的类,只能对文件本身进行操作,不能对文件内容进行操作。

File类是“文件和目录路径名的抽象表示”,而不是指文件内容(IO)。

File类定义了一些与平台无关的操作方法,如:删除文件、创建文件、重命名等。

Java目录被看成一个特殊文件,List()方法可以返回目录中所有的子目录和文件。

在Unix下路径分隔符为(/),在windows下为(),在java中可以正确的处理不同系统的分隔符。

六、字符流与字节流转换:

转换流的特点:其是字符流和字节流之间的桥梁,可对读取到的字节数据经过指定编码转换成字符,可对读取到的字符数据经过指定编码转换成字节。

七、1、输入字节流InputStreamIO:

1、InputStream 是所有的输入字节流的父类,它是一个抽象类。

2、ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。PipedInputStream 是从与其它线程共用的管道中读取数据,与Piped 相关的知识后续单独介绍。

3、ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。

2、输出字节流OutputStream:

1、OutputStream 是所有的输出字节流的父类,它是一个抽象类。

2、ByteArrayOutputStream、FileOutputStream 是两种基本的介质流,它们分别向Byte 数组、和本地文件中写入数据。PipedOutputStream 是向与其它线程共用的管道中写入数据,

3、ObjectOutputStream 和所有FilterOutputStream 的子类都是装饰流。

八、OutputStreamWriter和InputStreamReader:

在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。

OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。

InputStreamReade是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。