08.NIO之Path介绍

[TOC]一、Path介绍Path接口是java NIO2的一部分。首次在java 7中引入。Path接口在java.nio.file包下,所以全称是java.nio.file.Path。java中的Path表示文件系统的路径。可以指向文件或文件夹。Path同时也有相对路径和绝对路径之分:绝对路径:表示从文件系统的根路径到文件或是文件夹的路径。相对路径:表示从特定路径下访问指定文件或文件夹的...

Java 2022-05-29 PM 859次 0条

07.NIO之FileChannel练习

将数据写入指定文件import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.StandardCharse...

Java 2022-05-27 PM 825次 0条

06.NIO之FileChannel介绍

[TOC]一、概念FileChannel是一个连接到文件的通道,使用FileChannel可以从文件读数据,也可以向文件中写入数据。Java NIO的FileChannel是标准 Java IO 读写文件的替代方案。FileChannel的主要作用是读取、写入、映射、操作文件。FileChannel 只能工作在阻塞模式下。FileChannel 和 标准Java IO对比FileInputS...

Java 2022-05-27 PM 1068次 0条

05.NIO之bytebuffer黏包和半包

[TOC]一、示例网络上有多条数据发送给服务端,数据之间使用 n 进行分隔但由于某种原因这些数据在接收时,被进行了重新组合,例如原始数据有3条为Hello,worldnI'm zhangsannHow are you?n变成了下面的两个 byteBuffer (黏包,半包)Hello,worldnI'm zhangsannHow are you?n分析本来分别将上方三条数据发送给服务端,但是...

Java 2022-05-26 PM 778次 0条

04.NIO之bytebuffer常见方法演示

[TOC]1. 分配内存空间可以使用allocate() 和 allocateDirect()方法为ByteBuffer分配空间,其他buffer类也有该方法allocate(): 使用的是java的堆内存,堆内字节缓冲区,读写效率低,会受到GC的影响allocateDirect():使用的是直接内存,直接内存字节缓冲区,读写效率高(零拷贝),不会受GC影响,因为是系统直接内存,所以分配内存...

Java 2022-05-25 PM 929次 0条

03.NIO之bytebuffer内部结构和方法

[TOC]一、bytebuffer内部结构1.1 属性介绍Bytebuffer有以下重要属性:capacity(容量):缓冲区的容量。通过构造函数赋予,一旦设置,无法更改。position(指针):读写指针,记录数据读写的位置,缓冲区的位置不能为负,并且不能大于limit。limit(读写限制):缓冲区的界限。位于limit 后的数据不可读写。缓冲区的限制不能为负,并且不能大于其容量。1.2...

Java 2022-05-25 PM 887次 0条

02.NIO之bytebuffer基本使用

[TOC]前言本篇将通过nio读取一个文本文件来演示bytebuffer的基本使用一、准备数据准备创建data.txt文件,增加如下内容:1234567890abcd创建Maven项目安装lomback插件二、ByteBuffer 使用分析向 buffer 写入数据,例如调用 channel.read(buffer)调用 flip() 切换至读模式从 buffer 读取数据,例如调用 buf...

Java 2022-05-24 AM 808次 0条

01.NIO简单介绍

[TOC]前言Java NIO有两种解释:一种叫非阻塞IO(Non-blocking I/O)另一种叫新的IO(New I/O)其实两种概念也是相同的。一、概述Java NIO是从Java1.4版本开始引入的一个新的IO API,可以代替标准的IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的,基于通道的IO操作。NIO将以更加高效的方式进行文...

Java 2022-05-23 PM 754次 0条