NIO
喝醉的咕咕鸟
每天学一点,进步一点点
展开
-
NIO学习-01简述
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。 Java NIO 与 IO 的主要区别: 通道和缓冲区:这个是核心。 Java NIO系统的核心在...原创 2018-12-28 14:03:04 · 182 阅读 · 0 评论 -
NIO学习-02缓存
缓冲区: 一个用于特定基本数据类型的容器。由 java.nio 包定义的,所有缓冲区都是 Buffer 抽象类的子类。 Java NIO 中的 Buffer 主要用于与 NIO 通道进行交互,数据是从通道读入缓冲区,从缓冲区写入通道中的。 Buffer 就像一个数组,可以保存多个相同类型的数据。根据数据类型不同(boolean 除外) ,有以下 Buffer...原创 2018-12-28 14:05:05 · 194 阅读 · 0 评论 -
NIO学习-03通道
通道(Channel):由 java.nio.channels 包定义的。Channel 表示 IO 源与目标打开的连接。Channel 类似于传统的“流”。只不过 Channel本身不能直接访问数据,Channel 只能与Buffer 进行交互。 使用了通道进行连接,缓存使用了非直接缓存区形式。 Java为 Channel 接口提供的最主要实现类如下: java.ni...原创 2018-12-28 14:17:31 · 165 阅读 · 0 评论 -
NIO学习-04网络通信
网络通信: 传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。例如tomcat低版本的BIO模式就是传统的...原创 2018-12-28 14:17:36 · 161 阅读 · 0 评论 -
NIO学习-05(Path/Paths/Files)
Path 与 Paths: java.nio.file.Path 接口代表一个平台无关的平台路径,描述了目录结构中文件的位置. Paths 提供的 get() 方法用来获取 Path 对象: Path get(String first, String … more) : 用于将多个字符串串连成路径。 Path 常用方法: boolean endsWith(Str...原创 2018-12-28 14:17:41 · 396 阅读 · 0 评论