IO流
1、流的分类
方式一:
输入流-Input-往内存中输入-读-Reader
输出流-Output-从内存中输出-写-Writer
方式二:
字节流-按照字节的方式读取数据-可以读任何类型的文件包括图片视频声音-InputStream/OutputStream
字符流-按照字符的方式读取数据-只能读普通文本txt文件-Reader/Writer
2、四大家族首领(都是抽象类) 以Stream结尾的都是字节流,以Reader/Writer结尾的都是字符流
java.io.InputStream-字节输入流
java.io.OutputStream-字节输出流
java.io.Reader-字符输入流
java.io.Writer-字符输出流
所有的流都有close()方法,用完流都需要关闭,避免消耗资源。
所有输出流都有flush()方法,其作用是将剩余未输出的数据强制输出完,用完输出流记得flush()一下,避免数据丢失。
注意:在java中只要“类名”以Stream结尾的都是字节流。以“Reader/Writer”结尾的都是字符流。
3、java.io包下需要掌握的流有16个:
文件专属:
java.io.FileInputStream(掌握)
java.io.FileOutputStream(掌握)
java.io.FileReader
java.io.FileWriter
转换流:(将字节流转换成字符流)
java.io.InputStreamReader
java.io.OutputStreamWriter
缓冲流专属:
java.io.BufferedReader
java.io.BufferedWriter
java.io.BufferedInputStream
java.io.BufferedOutputStream
数据流专属:
java.io.DataInputStream
java.io.DataOutputStream
标准输出流:
java.io.PrintWriter
java.io.PrintStream(掌握)
对象专属流:
java.io.ObjectInputStream(掌握)
java.io.ObjectOutputStream(掌握)