IO:
数据方向分为:
输入流
输出流
按照操作的数据分为:
字节流
字符流
字节流:
InputStream
--FileInputStream
--BufferedInoutStream
read()
OutputStream
--FileOutputStream
--BufferedOutputStream
字符流:
Reader 读取字符数据
--FileReader 向文件中读取字符数据
Writer 写入字符数据
--FileWriter 向文件中写入字符数据
转换流:
InputStreamReader
OutputStreamWriter
1.当操作系统和要操作的文件的编码不一致时,使用转换流
2.创建转换流对象时,如果没有指定码表,那么与操作系统使用的码表一致
3.转换流是字符流,不能和文件直接交互,所以需要传递字节流
同时如果向目的地写数据时,要刷新或者关闭流
编码:将字符数据转成字节数据的过程,即字符 ---> 字节
解码:将字节数据按照码表转换成字符数据的过程,及字节 ---> 字符
乱码:编码和解码的时候,使用的编码表不一致,导致再解码的时候出现的错误的数据。这些数据被称为乱码。
字符流缓冲区:
BufferedReader:
String readLine():读取一行数据,不包含行的终止符
BufferedWriter:
newLine():换行符
设计模式:
单例模式:控制对象在内存中的唯一性
适配器模式:
对接口的适配
对类的适配
对对象的适配
装饰设计模式