没有合适的资源?快使用搜索试试~ 我知道了~
自己总结的java 新Io的一些特性,
资源详情
资源评论
资源推荐
Java 编程思想笔记
一、 java 新 IO
新 IO 和传统的 IO 有相同的目的,都是用于进行输入/输出功能,但新 IO 使用了不同的
方式来处理输入/输出,新 IO 采用内存映射文件的方式来处理输入/输出,新 IO 将文件或文
件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了(这种方式模拟了操
作系统上的虚拟内存的概念),通过这种方式来进行输入/输出比传统的输入/输出要快得多。
Java 中 NIO 相关的包如下:
1、java.nio 包:主要提供了一些和 Buer 相关的类。
2、java.nio.channels 包:主要包括 Channel 和 Selector 相关的类。
3、java.nio.charset 包:主要包含和字符集相关的类。
4、java.nio.channels.spi 包:主要包含提供 Channel 服务的类。
5、java.nio.charset.spi 包:主要包含提供字符集服务的相关类。
Channel(通道)和 Buer(缓冲)是新 IO 中的两个核心对象,Channel 是对传统输入/输出系
统 中 的 模 拟 , 在 新 IO 系 统 中 所 有 数 据 都 需 要 通 过 通 道 传 输 ; Channel 与 传 统 的
InputStream、OutputStream 最大的区别在于它提供了一个 map 方法,通过该 map 方法可以
直接将“一块数据”映射到内存中。如果说传统的输入/输出系统是面向流的处理,而新 IO 则
是面向块的处理。
Buer 可以被理解成一个容器,它的本质是一个数组,发送到 Channel 中的所有对象都
必须首先放到 Buer 中,而从 Channel 中读取的数据也必须先读到 Buer 中。此处的 Buer
有点类似于前面我们介绍的“竹筒”,但该 Buer 既可以像前面那样一次、一次去 Channel 中
取水,也允许使用 Channel 直接将文件的某块数据映射成 Buer。
除了 Channel 和 Buer 之外,新 IO 还提供了用于将 UNICODE 字符串映射成字节序列以
及逆映射操作的 Charset 类,还提供了用于支持非阻塞式输入/输出的 Selector 类。
在 java新 io 中提供了文件所得功能,这样当一个线程将文件锁定以后,其他线程是无
法操作此文件的。要想进行文件的锁定,则要使用 FileLock类来完成,此类的对象需要依
靠 FileChannel进行实例化。
文件锁定的两种方式:
共享锁:允许多个线程进行文件的读取操作;
独占所:只允许一个线程进行文件的读/写操作
视图缓冲器
视图缓冲器(viewbuer)可以让我们通过某个特定的基础数据类型的视窗查看
其底层的 ByteBuer。ByteBuer 依然是实际存储数据的地方,“支持”着前面的视图,因此 ,
never_give_up_001
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0