一、简介
IO就是Input和Output(输入和输出)。
流指的就是流向,比如数据写入内存就是流入,数据写出内存就是流出。
从流向上区分,分为输入流和输出流。
从IO流处理的数据类型上分为:字节流,字符流,缓冲流。
二、分类
1.字节流:
字节输入流InputStream
常用方法:
int read();
int read(byte[] b);
void close();
常用子类:FileInputStream
构造方法:
public FileInputStream(String pathname);
public FileInputStream(File pathname);
字节输出流OutputStream
常用方法:
void write(int i);
void write(byte[] b);
void write(byte[] b,int offset,int len);
void flush();
void close();
常用子类:FileOutputStream
构造方法:
public FileOutputStream(String pathname);
public FileOutputStream(File pathname);
public FileOutputStream(String pathname,boolean append);
public FileOutputStream(File pathname,boolean append);
2.字符流分为:
字符输入流Reader
常用方法:
int read();
int read(char[] ch);
void close();
常用子类:FileReader
构造方法:
public FileReader(String pahtname);
public FileReader(File pahtname);
字符输出流Writer
成员方法:
void write(int b);
void write(char[] ch);
void write(char[] ch,int offset,int len);
void write(String str);
void write(String str,int offset,int len);
void flush();
void close();
常用子类:FileWriter
构造方法:
public FileWriter(String pathname);
public FileWriter(File pathname);
public FileWriter(String pathname,boolean append);
public FileWriter(File pathname,boolean append);
3.缓冲流:
字节输入流(InputStream):
常用子类:
FileInputStream
BufferedInputStream:
构造方法:
public BufferedInputStream(InputStream is);
public BufferedInputStream(InputStream is,int size);
字节输出流(OutputStream):
常用子类:
FileOutputStream
BufferedOutputStream:
构造方法:
public BufferedOutputStream(OutputStream os);
public BufferedOutputStream(OutputStream os,int size);
字符输入流(Reader):
常用子类:
FileReader
BufferedReader:
构造方法:
public BufferedReader(Reader r);
public BufferedReader(Reader r,int size);
字符输出流(Writer):
常用子类:
FileWriter
BufferedWriter
构造方法:
public BufferedWriter(Writer w);
public BufferedWriter(Writer w,int size);
注意事项:
1.底层数据的传输来说只有字节流,没有字符流。
2.字符输入流和缓冲字符输入流读取数据,读取的次数是一样的,高效体现在字节到字符的转换。
3.字符缓冲输出流的高效体现在,字符到字节的转换上,写出次数这两种(FileWriter、BufferedWriter)是一样的