基于Java异步文件读写工具ASYNC-FILE介绍

async-file工具提供Java异步读写文件能力,使用Java NIO 库开发。Java应用程序引入框架可以简单的,异步和非阻塞的读写文件。框架包含三个工具类:

  • AIOFileReader:异步读取文件,使用Java NIO库 AsynchronousFileChannel 和 CompletionHandler 实现。
  • AIOFileWriter:异步写入文件,使用Java NIO库 AsynchronousFileChannel 和 CompletionHandler 实现。
  • NIOFileLineReader:非阻塞读取文件,使用 ForkJoinPool 和 BufferedReader 实现

提示:Java提供的 Files 文件读取功能是阻塞的。

安装教程

首先,如果项目使用Maven工具,在项目的pom.xml文件中添加依赖

<dependency> 
  <groupId>io.github.kavahub</groupId>
  <artifactId>kava-async-file</artifactId>
  <version>1.0.0.RELEASE</version>
</dependency>

如果是Gradle项目,需要添加依赖:

implementation 'io.github.kavahub:kava-async-file:1.0.0.RELEASE'

 AIOFileReader使用说明

AIOFileReader方法列表:

  • Query<byte[]> bytes(Path file) : 读取文件,返回文件数据字节数组,读取的大小有默认缓冲区决定。
  • Query<byte[]> allBytes(Path file) : 读取文件,返回文件所有数据字节数组。每次按默认缓冲区读取文件,完成后合并。
  • Query<String> line(Path file) : 读取文件,返回文件行字符串。每次按默认缓冲区读取文件数据字节数组,按换行符分割字节数组。
  • Query<String> allLines(Path file) : 读取文件,返回文件所有数据字符串。每次按默认缓冲区读取文件数据字节数组,合并后转换成字符串。

提示:默认缓冲区大小定义

public static final int BUFFER_SIZE = 4096 * 4;

示例:

        // 按行读取文件,并输出到控制台
        final Path FILE = Paths.get("src", "test", "resources", "fileWithmanyOfLine.txt");
        AIOFileReader.line(FILE).subscribe((data, err) -> {
            if (err != null) {
                // 处理异常,如记录日志
                err.printStackTrace();
            }

            if (data != null) {
                // 文件行处理,如输出到控制台
                System.out.println(data);
            }
        })
        // 等待所有行处理完成
        .join();<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值