IO Unix IO BIO AIO NIO
IO: io流分为 字符 和 字节 两种,其实比较好认,一般字节的都是Stream结尾,字符的是Reader或Writer结尾,字符和字节转换用InputStreamReader 字符的用于读取纯文本格式,一次读一个字符,比如utf-8三个字节 字节用来读取二进制文件等,那种人看不懂的,包括图片 视频等 再者就是io流使用了典型的装饰者模式,等等我去偷张图,侵删。 可以清晰的看出FilterInputStream就是装饰者,再不改变原有类的情况下,下面三个Data/Buffered/PushbackInputStream附加实现了不同的功能,比如BufferedInputStream实现了缓冲的功能,如果想深入了解,个人建议去看 https://www.jianshu.com/p/4a530a3c70af 。 具体使用来个例子吧清晰一点: 复制文件 FileInputStream in = new FileInputStream(src); FileOutputStream out = new FileOutputStream(dist); byte [] buffer = new byte [ 1024 ]; // read() 最多读取 buffer.length 个字节 返回的是实际读取的个数 返回 -1 的时候表示读到 eof,即文件尾 while (in.read