字节流:
FileInputStream:通过字节的方式读取文件,适合读取所有类型的文件(图像、视频等),全字符请考虑FileReader
FileOutputStream:通过字节的方式写出或追加数据到文件,适合所有类型的文件(图像、视频等),全字符请考虑FileWriter
字符流:
FileReader :通过字符的方式读取文件,仅适合字符文件
FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件
字节数组流:
ByteArrayInputStream:字节数组输入。存储在内存中,可以由Java直接访问,由垃圾回收机制释放,不用手动关闭。
ByteArrayOutputStream: 字节数组输出。(baos.tobyteArray()方法获取数据)
字节数组流读写的顺序要保持一致,不然会报错。
字节缓冲流:
BufferedInputStream & BufferedOutputStream:提升性能,加快程序运行速度,直接在外面嵌套使用。
字符缓冲流:
BufferedReader&BufferedWriter : 提升性能,适用于纯文本。
新增方法,readline():读取一行 newLine():换行符 ; 使用新增方法不能使用多态。
转换流:
InputStreamReader / OutputStreamWriter: 是字节流与字符流之间的桥梁,能将字节流转换为字符流,并且能为字节流指定字符集,可处理一个个的字符
数据流:
DataInputStream & DataOutputStream :保留数据的同时也保留了数据类型。写出后读取,读取顺序与写出顺序要保持一致。
对象流:
ObjectInputStream: 跟数据流类似,除了基本数据类型跟字符串,还包括其他各种对象。反序列化
ObjectOutputStream:序列化
打印流:
PrintStream & printWriter