java.nio包的分析(二)---Channels分析

简介: Channels包的作用可谓是其中的主要作用的体现了,可以用FileChannel实现双向I/O,ServerChannel无阻塞的通信等等。

继上一小节分析完Java.nio直接包下的Buffer,我们再来看看下面的一些包,自然就落到了Channels通道包的实现了。Channels包的作用可谓是其中的主要作用的体现了,可以用FileChannel实现双向I/O,ServerChannel无阻塞的通信等等。首先亮出他的目录结构。
_

还有相应的服务程序接口包中的一些类

_

我们先来看其中的文件锁类,避免多线程同时操作文件
_

我们再来看看其中的FileChannel类时如何操作的,首先
_

下面我们再来看看其中的用于Socket的SelectKey类,nio下的socket与平时我们用的用法不同,他的事件需要我们先去注册,相当于以事件通知的形式,里面总共有4种类型

_

里面还提供可一个可关联的对象,也许是用来存储什么信息的
_

说完SelectorKey,我们看看SocketChannel类,
_

还有另外一种形式
_

在这个包里还有叫Channels类跟Channel类名字太容易记混了,channel 只是一个interface,加了一个就是一个全新的类的,我们来看看其中的read()方法,
_

然后我们看看刚刚提到的一个提供类,叫SelectorProvider类,
_

或者通过构造函数的形式去取得
_

Channel明显感觉是里面最难懂的部分了,类最多,我只能理解个大概吧,我只能是带领大家入个门。好,接下来分析nio中的最后一块新大陆,Charset。

原文链接:https://blog.csdn.net/Androidlushangderen/article/details/39753777

目录
相关文章
|
4月前
|
存储 Java
【编程基础知识】 分析学生成绩:用Java二维数组存储与输出
本文介绍如何使用Java二维数组存储和处理多个学生的各科成绩,包括成绩的输入、存储及格式化输出,适合初学者实践Java基础知识。
112 1
|
29天前
|
存储 Java 开发者
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
本文详细介绍了 Java 中 `toString()` 方法的重写技巧及其重要
49 10
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
|
29天前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
38 5
|
29天前
|
人工智能 自然语言处理 搜索推荐
【潜意识Java】了解并详细分析Java与AIGC的结合应用和使用方式
本文介绍了如何将Java与AIGC(人工智能生成内容)技术结合,实现智能文本生成。
58 5
|
29天前
|
SQL Java 数据库连接
【潜意识Java】Java中JDBC过时方法的替代方案以及JDBC为什么过时详细分析
本文介绍了JDBC中一些常见过时方法及其替代方案。
41 5
|
29天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
77 4
|
29天前
|
Java 数据库连接 数据库
【潜意识Java】使用 Ruoyi 框架开发企业级应用,从零开始的实践指南和分析问题
本文介绍了基于Spring Boot的开源企业级框架Ruoyi,涵盖环境搭建、项目初始化及用户管理模块的创建。
130 4
|
29天前
|
SQL Java API
|
29天前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
60 1
|
2月前
|
缓存 算法 搜索推荐
Java中的算法优化与复杂度分析
在Java开发中,理解和优化算法的时间复杂度和空间复杂度是提升程序性能的关键。通过合理选择数据结构、避免重复计算、应用分治法等策略,可以显著提高算法效率。在实际开发中,应该根据具体需求和场景,选择合适的优化方法,从而编写出高效、可靠的代码。
49 6