Netty中流基础知识点有哪些
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"Netty中流基础知识点有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、IO
千家信息网最后更新 2026年11月01日Netty中流基础知识点有哪些
本篇内容介绍了"Netty中流基础知识点有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1、IO、NIO、AIO 含义区别
一、同步阻塞I/O(BIO block io)
jdk1.4之前就一个io流,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制来改善。BIO方式适用于连接数目比较小且固定的架构,这种方式对服务端资源要求比较高,并发局限于应用中。
二、 同步非阻塞I/O(NIO)
Java NIO(New IO)是从Java 1.4版本开始引入的 一个新的IO API,可以替代标准的Java IO API。 NIO与原来的IO有同样的作用和目的,但是使用 的方式完全不同,NIO支持面向缓冲区的、基于 通道的IO操作。NIO将以更加高效的方式进行文 件的读写操作。
三、异步非阻塞I/O(AIO)
异步非阻塞I/O,服务器实现模式为一个有效请求一个线程,客户端的IO请求都是由操作系统先完成了再通知服务器用其启动线程进行处理。AIO方式适用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,jdk1.7开始支持。
四、同步与异步的区别
同步:一个人只能先上完小学才能上初中,上完初中才能上高中,最后才可以大学,一步一步来,这是同步。异步:一个人可以一边听歌,也可以一边玩游戏,两种动作可以同时进行
五、NIO与IO的区别
2、NIO的核心
1、定义
client(客户端)和server(服务端),把数据client传送到server,或者server传送到client,就相当于怎么上海火车站的人群运输到北京火车站,或者北京车站运输到上海火车站。channel:北京上海之间的铁轨buffer: 火车(可以有多个型号的火车)
2.1 Buffer(缓冲区)
在Java NIO中负责数据的存取,缓冲区就是数组,用于存储不同数据类型的数据,根据数据类型不同,提供了响应类型的缓冲区:ByteBuffer、CharBuffer、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer、DoubleBuffer,通过 allocate() 获取缓冲区。
2.2 Channel(通道)
Channel类似于传送的流,只不过Channel本身不能直接访问数据,Channel只能与Buffer进行交互,简而言之,Channel 负责传输, Buffer 负责存储。
3、Path 与 Paths
一、Path
| booleanendsWith(Stringpath) | 判断是否以path路径结束 |
| booleanstartsWith(Stringpath) | 判断是否以path路径开始 |
| boolean isAbsolute() | 判断是否是绝对路径 |
| PathgetFileName() | 返回与调用Path对象关联的文件名 |
| Path getName(int idx) | 返回的指定索引位置 idx 的路径名称 |
| intgetNameCount() | 返回Path根目录后面元素的数量 |
| PathgetParent() | 返回Path对象包含整个路径,不包含Path对象指定的文件路径 |
| PathgetRoot() | 返回调用Path对象的根路径 |
| Path resolve(Path p) | 将相对路径解析为绝对路径 |
| PathtoAbsolutePath() | 作为绝对路径返回调用Path对象 |
| StringtoString() | 返回调用Path对象的字符串表示形式 |
二、Paths
java.nio.file.Files 用于操作文件或目录的工具类。
| 方法 | 描述 |
|---|---|
| Path get(String first, String ... more) | Paths提供的get()方法用来获取Path对象,用于将多个字符串串连成路径 |
| Path copy(Path src, Path dest, CopyOption ... how) | 文件的复制 |
| Path createDirectory(Path path, FileAttribute> ... attr) | 创建一个目录 |
| Path createFile(Path path, FileAttribute> ... arr) | 创建一个文件 |
| void delete(Path path) | 删除一个文件 |
| Path move(Path src, Path dest, CopyOption...how) | 将 src 移动到 dest 位置 long size(Path path) : 返回 path 指定文件的大小 |
| boolean exists(Path path, LinkOption ... opts) | 判断文件是否存在 |
| boolean isDirectory(Path path, LinkOption ... opts) | 判断是否是目录 |
| boolean isExecutable(Path path) | 判断是否是可执行文件 |
| boolean isHidden(Path path) | 判断是否是隐藏文件 |
| boolean isReadable(Path path) | 判断文件是否可读 |
| boolean isWritable(Path path) | 判断文件是否可写 |
| boolean notExists(Path path, LinkOption ... opts) | 判断文件是否不存在 |
三、Files操作内容方法
| SeekableByteChannel newByteChannel(Path path, OpenOption...how) | 获取与指定文件的连接,how 指定打开方式。 |
| DirectoryStream newDirectoryStream(Path path) | 打开 path 指定的目录 |
| InputStream newInputStream(Path path, OpenOption...how) | 获取 InputStream 对象 |
| OutputStream newOutputStream(Path path, OpenOption...how) | 获取 OutputStream 对象 |
4、使用IO读写操作
1、读取
@Testpublic void readeFile() { FileInputStream input = null; String result = ""; try { //1.根据path实例化一个输入流的对象 input = new FileInputStream("/Users/tentsuuhou/Desktop/潜台词.txt"); //2.返回这个输入流中可以被读的剩下的bytes字节的估计值; int size = input.available(); //3.根据输入流的字节创建一个byte数组 byte[] array = new byte[size]; //4.把数据读取到byte数组中 input.read(array); //5.根据获取的byte数组新建一个字符串,然后输出 result = new String(array); System.out.println(result); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(input != null){ try { input.close(); } catch (IOException e) { e.printStackTrace(); } } }}2、写入
@Testpublic void writeFile() { FileOutputStream out = null; String content = "我爱开源中国"; try { //1.根据路径创建输出流对象 out = new FileOutputStream("/Users/tentsuuhou/Desktop/777.txt") ; //2.把String字符串转换成byte数组; byte[] b = content.getBytes(); //3.把byte数组输出 out.write(b); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } }}"Netty中流基础知识点有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
路径
对象
数据
服务
数组
方式
线程
缓冲区
同步
缓冲
知识
字符
服务器
火车
目录
输出
阻塞
不同
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
苏州找大状互联网科技有限公司
A股互联网金融科技公司
华宇互联网科技
期待互联网科技
互联网未来科技
互联网科技ppt模板
顺玮阁互联网科技
上海卓越科技 互联网
联恩商钥互联网科技有限公司
深圳卡尔迅互联网科技有限公司怎么样
成都仁贤领冠互联网科技有限公司
太原新华互联网科技学校怎么样
以后互联网后是啥科技
金融科技与互联网金融相同和不同
互联网大会黑科技排名
青海科技产业互联网发展
中国科技创新与世界互联网大会
长沙易易互联网科技有限公司
承德科技产业互联网平台
中关村互联网 科技集团
蓝思科技飞鸽互联网
苏州找大状互联网科技有限公司
互联网科技公司发展
深圳卡尔迅互联网科技有限公司怎么样
无锡溥仪互联网科技有限公司
科技与互联网的利与弊
崇明区互联网教育科技售后服务
广州百诚互联网科技有限公司官网
东营紫格互联网科技