读和写是的方向是基于内存的。
如把内容从文件中写进内存,内存需要从文件读取数据,则使用的是 inputstream.read()
如把内容从内存中写进文件,内存需要输出数据,则使用的是outputstream.write()
字节流和字符流
IO:装饰模式
DataInputStream in = new DataInputStream( <- 在原有字节流基础上提供使用者基础类型读取的api
new BufferedInputStream( <- 在原有字节流基础上加入缓存机制
new FileInputStream( <- 将文件转成字节流
new File("xxxx.txt")))); <- 读取文件
字节流:
InputStream/OutputStream:公共抽象基类
FilterInputStream/FilterOutputStream:装饰类,将共有逻辑抽取到这个类中,子类可以进行灵活的功能扩展
DataInputStream/BufferInputStream:继承于FilterInputStream
字符流:
大部分文件操作(exe/png/apk/xml等),都使用的字节流,读成字符没有太大意义。
字节流读取的单位是字节。
字符流读取的单位是字符,1字符=2字节
最大的区别:readline()。字节没有行的概念,字符才有行的概念。



