9、Java IO(BIO、NIO、AIO)、常用方法

9、Java IO

9.1 java 中 IO 流分为几种?

按功能来分输入流(input)、输出流(output)
按类型来分字节流(8Byte)和字符流(16Byte)

字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

9.2 BIO、NIO、AIO 有什么区别?

BIOBlock IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。(一个请求独占一个线程)
NIONew IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。(多了线程池的概念,请求排队)
AIOAsynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。(多了缓冲区的概念,写完读完就丢在缓冲区,留在操作系统有空在处理)

在这里插入图片描述

9.3 Files的常用方法都有哪些?

Path path = Paths.get(“E:/Demo.txt”);

Path path2 = Paths.get(“E:/Demo”);

Path path3 = Paths.get(“E:/Demo02.txt”);

方法作用
Files.exists(path)检测文件路径是否存在(Boolean)
Files.createFile(path)创建文件
Files.createDirectory(path2)创建文件夹
Files.delete(path2)删除一个文件或目录
Files.copy(path, path3)复制文件(path复制到path3)
Files.move(path,path3)移动文件(支持移动(不同目录下)、改名(同目录下,推荐使用)、覆盖文件(同名)操作)
Files.size(path)返回文件大小,以字节为单位
Files.read()读取文件
Files.write()写入文件

10、字节流如何转为字符流

字节输入流转字符输入流通过 InputStreamReader 实现,该类的构造函数可以传入 InputStream 对象。
字节输出流转字符输出流通过 OutputStreamWriter 实现,该类的构造函数可以传入 OutputStream 对象


版权声明:本文为qq_45912388原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。