在Java里面对文件的操作有个专门的名词,叫做IO流
流按照流向方向分为:输入流,输出流
流按照操作数据分为:字节流和字符流
字节流:从输入流对象中读取的数据都是最基本的字节;写入输出流对象的中的数据也是一字节为单位写入的。字节流可以处理图片,音频,视频等
字符流:从输入流对象中返回的是已经根据编码方式解码之后的字符。往输出流对象中写入的也是字符,这些字符被自动编码。
注释:字符流只能处理字符文件。如果要处理纯文本文件的数据,优先考虑字符流,使用方便而且高效。
其中字节流有两个超类:InputStream和OutputStream
字符流也有两个超类:Reader和Writer
Reader里面有两个子类:BufferedReader和InputStreamReader
InputStreamReader里面有一个子类:FileReader
Writer里面有两个子类:BufferedWriter和OutputStreamWriter
OutputStreamWriter里面有一个子类:FileWriter
InputStream里面有两个子类:FileInputStream和FilterInputStream
FilterInputStream里面有一个子类:BufferedInputStream
OutputStream里面有两个子类:FileOutputStream和FilterOutputStream
FilterOutputStream里面有一个子类:BufferedOutputStream