这是根据参考https://github.com/Snailclimb/JavaGuide和https://www.pdai.tech/总结的
仅做了简单总结,方便自我背诵。详情请看上述网址的大神分析
IO根据传输方式分为:字节流和字符流
字节流:InputStream和OutputStream
字符流:Reader和Writer
字节流和字符流的区别?
①字节流(InputStream、OutputStream)读取单个字节(即8个bit);字符流(Reader、Writer)读取单个字符(UTF-8编码单个字符=3个字节,中文编码单个字符=2个字节)
②字节流处理二进制文件(图片、音频、视频文件);字符流处理文本文件
IO常用的类:
①File(磁盘操作)
②InputStream和OutputStream(字节操作)
③Reader和Writer(字符操作)
④Serializable(对象操作)
⑤Socket(网络操作)
Unix系统分为5种IO模型:①同步阻塞I/O ②同步非阻塞I/O ③I/O多路复用 ④信号驱动I/O ⑤异步I/O
Java常用的三种I/O模型:①BIO(同步阻塞I/O) ②NIO(I/O多路复用) ③AIO(异步I/O)
NIO和IO的区别?
①IO面向流的;NIO面向缓冲区
②IO是属于阻塞IO;NIO是非阻塞IO
③NIO有选择器,可以实现多路复用