作用:用来读写数据,比如上传,下载,复制
分类:
从类型角度:字节流,字符流
从流向角度:输入流,输出流。
顶层父类:
字节流
字节输入流:InputStream
字节输出流:OutputStream
字符流
字符输入流:Reader
字符输出流:Writer
字节流会以字节为单位读写
字符流会以字符为单位读写
所有字节输入流读取的方法:
int read():读取一个字节,如果读取结束返回-1
int read(byte[] bArr):读取数据到字节数组中,返回读取到的字节个数,如果读取结束返回-1
所有字节输出流写的方法:
void write(int i):写一个字节
void write(byte[] bArr):写一个字节数组
void write(byte[] bArr, int off, int len):写字节数组一部分
所有字符输入流读取的方法:
int read():读取一个字符,如果读取结束返回-1
int read(char[] cArr):读取数据到字符数组中,返回读取到的字符个数,如果读取结束返回-1
所有字符输出流写的方法:
void write(String str):写字符串
void write(String str, int off, int len):写字符串的一部分
void write(int i):写一个字符
void write(char[] cArr):写字符数组
void write(char[] cArr, int off, int len):写字符数组的一部分
所有流的使用步骤:
1.创建流
2.读或写
3.关闭流
注意:如果是字符输出流,需要刷新。
流的使用步骤一样,只不过每种流的作用有所不同
基本字节流:FileInputStream,FileOutputStream。 操作非文本文件,使用字节流。
基本字符流:FileReader,FileWriter。 操作文本文件,会使用默认编码进行读写。
缓冲流:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter。 效率高,提高读写效率
BufferedReader特有方法:readLine,用于读取一行
BufferedWriter特有方法:newLine,跨平台换行
转换流:InputStreamReader,OutputStreamWriter。 可以指定编码进行读写。
序列化流:ObjectOutputStream,ObjectInputStream。 用来读写对象。
ObjectOutputStream特有方法:writeObject,用来写对象
ObjectInputStream特有方法:readObject,用来读取对象
打印流:PrintStream 输出数据十分方便。
特有方法: print,println