![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java NIO 笔记
文章平均质量分 84
@胡海龙
www.huhailong.vip
展开
-
Java NIO笔记05
更多内容:我的博客 使用Java NIO FileChannel 读取文件时UTF-8中文乱码问题解决 在上次笔记中记录了FileChannel相关的知识,准备通过java swing做一个Windows的记事本还原,目前还在开发当中,目前界面如下: 后续还会对界面和功能进行完善和开发。目前在读取文件时遇到一点小问题,我这里想默认暂时用UTF-8去打开文件,这时候由于UTF-8是不定长编码,而且通过FileChannel读取文件的话我们得首先分配ByteBuffer的大小,这种情况下如果读取到某个汉字时它原创 2021-10-30 21:19:18 · 103 阅读 · 0 评论 -
Java NIO 笔记 04
Java NIO 中Channel与Channel的传输 更多内容:我的博客 transferFrom() transferTo() 在 Java NIO 中,如果其中一个Channel为FileChannel,那么您可以将数据直接从一个通道传输到另一个通道,FileChannel类中有一个transferTo()和一个transferFrom()方法,可以为我们执行这样的操作。 transferFrom() FileChannel.tranferFrom()方法将数据从源通道传输到FileChanne原创 2021-10-25 23:01:25 · 127 阅读 · 0 评论 -
Java NIO 笔记03
Java NIO 的分散(scatter)/聚集(gather) 分散(scatter)和聚集(gather)是用于从通道读取和写入的概念。从通道分散读取是一种将数据读入多个缓冲区(Buffer)的读取操作,也就是将来自通道的数据分散到多个缓冲区中。 对通道的聚集写入是一种将数据从多个缓冲区写入单个通道的写入操作。因此,通道将来自多个缓冲区的数据“聚集”到一个通道中。在需要分别处理传输数据的各个部分的情况下,分散/聚集是非常有用的。例如,如果消息是由标题和正文组成的,我们可以将标题和正文保存在单独的缓冲区。原创 2021-10-17 23:28:23 · 104 阅读 · 0 评论 -
Java NIO 笔记02
Java NIO 笔记02 Java NIO Buffer Java NIO Buffer 在与Channel交互时被使用——channel从buffer中读取数据,channel将数据写入buffer。 一个buffer本质上是一块内存区域,我们可以在其中写入数据,之后可以再次读取数据。这个内存块被包裹在NIO 的 Buffer对象中。它提供了一些方法可以轻松的使用内存块。 Buffer的基本使用 使用Buffer进行读取和写入一般有如下4个步骤: 将数据写入Buffer 调用buffer.flip()原创 2021-10-10 22:10:36 · 119 阅读 · 0 评论 -
Java NIO 笔记01
Java NIO 简介 Java NIO 由以下几个核心组成: Channels Buffers Selectors Java NIO 除了上面三个还有很多组件,但是最核心的还是上面这三个,所以搞懂上面三个的含义及用法是学习Java NIO的重点。其余组件,例如Pipe和FileLock只是与三个核心组件结合使用的实类。 Channels 与 Buffers 通常,在NIO中所有的IO都是以一个Channel开始。这里的Channel可以理解为像流的一个概念。然后我们可以从Channel中读取数据到B原创 2021-10-07 22:10:31 · 103 阅读 · 0 评论