Skip to content

Commit 63c0100

Browse files
committed
更改包名称
1 parent 501c3d9 commit 63c0100

35 files changed

+91
-88
lines changed

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"java.configuration.updateBuildConfiguration": "automatic"
3+
}

README.md

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
框架提供Java异步读写文件功能,除依赖slf4j日志包,不依赖其他第三方包。Java应用程序引入框架可以简单的,异步和非阻塞的读写文件。框架包含三个工具类:
55

66

7-
[`AIOFileReader`](src/main/java/net/kava/file/reader/AIOFileReader.java) 异步读取文件,使用Java NIO库 [`AsynchronousFileChannel`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/AsynchronousFileChannel.html)[`CompletionHandler`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/CompletionHandler.html) 实现。
7+
[`AIOFileReader`](src/main/java/io/github/kavahub/file/reader/AIOFileReader.java) 异步读取文件,使用Java NIO库 [`AsynchronousFileChannel`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/AsynchronousFileChannel.html)[`CompletionHandler`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/CompletionHandler.html) 实现。
88

9-
[`AIOFileWriter`](src/main/java/net/kava/file/reader/AIOFileWriter.java) 异步写入文件,使用Java NIO库 [`AsynchronousFileChannel`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/AsynchronousFileChannel.html)[`CompletionHandler`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/CompletionHandler.html) 实现。
9+
[`AIOFileWriter`](src/main/java/io/github/kavahub/file/writer/AIOFileWriter.java) 异步写入文件,使用Java NIO库 [`AsynchronousFileChannel`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/AsynchronousFileChannel.html)[`CompletionHandler`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/CompletionHandler.html) 实现。
1010

11-
[`NIOFileLineReader`](src/main/java/net/kava/file/reader/NIOFileLineReader.java) 非阻塞读取文件,使用 [`ForkJoinPool`](https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/ForkJoinPool.html)[`BufferedReader`](https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html) 实现
11+
[`NIOFileLineReader`](src/main/java/io/github/kavahub/file/reader/NIOFileLineReader.java) 非阻塞读取文件,使用 [`ForkJoinPool`](https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/ForkJoinPool.html)[`BufferedReader`](https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html) 实现
1212

1313
Java提供的 [`Files`](https://docs.oracle.com/javase/10/docs/api/java/nio/file/Files.html) 文件读取功能是阻塞的。
1414

@@ -32,15 +32,15 @@ implementation 'net.kava:kava-async-file:1.0.0'
3232

3333
#### 使用说明
3434

35-
[`AIOFileReader`](src/main/java/net/kava/file/reader/AIOFileReader.java)方法列表:
35+
[`AIOFileReader`](src/main/java/io/github/kavahub/file/reader/AIOFileReader.java)方法列表:
3636

37-
`Query<byte[]> bytes(Path file)` : 读取文件,返回文件数据字节数组,读取的大小有默认缓冲区决定。
37+
- `Query<byte[]> bytes(Path file)` : 读取文件,返回文件数据字节数组,读取的大小有默认缓冲区决定。
3838

39-
`Query<byte[]> allBytes(Path file)` : 读取文件,返回文件所有数据字节数组。每次按默认缓冲区读取文件,完成后合并。
39+
- `Query<byte[]> allBytes(Path file)` : 读取文件,返回文件所有数据字节数组。每次按默认缓冲区读取文件,完成后合并。
4040

41-
`Query<String> line(Path file)` : 读取文件,返回文件行字符串。每次按默认缓冲区读取文件数据字节数组,按换行符分割字节数组。
41+
- `Query<String> line(Path file)` : 读取文件,返回文件行字符串。每次按默认缓冲区读取文件数据字节数组,按换行符分割字节数组。
4242

43-
`Query<String> allLines(Path file)` : 读取文件,返回文件所有数据字符串。每次按默认缓冲区读取文件数据字节数组,合并后转换成字符串。
43+
- `Query<String> allLines(Path file)` : 读取文件,返回文件所有数据字符串。每次按默认缓冲区读取文件数据字节数组,合并后转换成字符串。
4444

4545
默认缓冲区大小定义:
4646

@@ -220,18 +220,18 @@ Thread-7
220220
...
221221
```
222222

223-
其结果表明:有两个线程读取文件,线程交替读取以保证读取文件数据的顺序, [`AsynchronousFileChannel`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/AsynchronousFileChannel.html) 实现的
223+
其结果表明:有两个线程读取文件,线程交替读取以保证读取文件数据的顺序,这是 [`AsynchronousFileChannel`](https://docs.oracle.com/javase/10/docs/api/java/nio/channels/AsynchronousFileChannel.html) 实现的
224224

225225

226-
[`AIOFileWriter`](src/main/java/net/kava/file/reader/AIOFileReader.java)方法列表:
226+
[`AIOFileWriter`](src/main/java/io/github/kavahub/file/writer/AIOFileWriter.java)方法列表:
227227

228-
`CompletableFuture<Integer> write(Path file, byte[] bytes)` : 字节数组数据写入文件。
228+
- `CompletableFuture<Integer> write(Path file, byte[] bytes)` : 字节数组数据写入文件。
229229

230-
`CompletableFuture<Integer> write(Path file, String line)` : 字符串数据写入文件。
230+
- `CompletableFuture<Integer> write(Path file, String line)` : 字符串数据写入文件。
231231

232-
`CompletableFuture<Integer> write(Path file, Query<String> lines)` : 字符串流数据写入文件。
232+
- `CompletableFuture<Integer> write(Path file, Query<String> lines)` : 字符串流数据写入文件。
233233

234-
`CompletableFuture<Integer> write(Path file, Iterable<String> lines)` : 字符串集合数据写入文件。
234+
- `CompletableFuture<Integer> write(Path file, Iterable<String> lines)` : 字符串集合数据写入文件。
235235

236236
示例:
237237

@@ -287,7 +287,7 @@ Thread-7
287287
AIOFileWriter.write(Paths.get(FILE_TO_WRITE), reader).join();
288288
```
289289

290-
[`NIOFileLineReader`](src/main/java/net/kava/file/reader/NIOFileLineReader.java) 方法列表:
290+
[`NIOFileLineReader`](src/main/java/io/github/kavahub/file/reader/NIOFileLineReader.java) 方法列表:
291291

292292
`Query<String> read(Path file)` : 读取文件行。
293293

@@ -302,17 +302,21 @@ Thread-7
302302

303303
关于使用的建议:
304304

305-
1. 文件的异步读写,并不是未了提高文件的读取性能,而是提高文件读取的吞吐量(读取更多的文件,并保持性能,使JVM可以稳定运行)。
306-
2. 在大多数情况下,使用Jdk提供的[`Files`](https://docs.oracle.com/javase/10/docs/api/java/nio/file/Files.html)或许更合适。
307-
3. 不要为了异步而异步,找到问题所在,也许解决问题的关键不是异步。
305+
- 文件的异步读写,并不是未了提高文件的读取性能,而是提高文件读取的吞吐量(读取更多的文件,并保持性能,使JVM可以稳定运行)。
306+
- 在大多数情况下,使用Jdk提供的[`Files`](https://docs.oracle.com/javase/10/docs/api/java/nio/file/Files.html)或许更合适。
307+
- 不要为了异步而异步,找到问题所在,也许解决问题的关键不是异步。
308308

309-
性能测试,参考 [`ReadLineBenchmark`](src/test/java/net/kava/file/performance) 。 其他开源项目文件读写的性能测试 [`ReadFileBenchmark`](https://gitee.com/yangyunjiao/learn-java/blob/master/core-java/core-java-io/src/main/java/net/learnjava/ReadFileBenchmark.java)
309+
性能测试,参考 [`ReadLineBenchmark`](src/test/java/io/github/kavahub/file/performance/ReadLineBenchmark.java) 。 其他开源项目文件读写的性能测试 [`ReadFileBenchmark`](https://gitee.com/yangyunjiao/learn-java/blob/master/core-java/core-java-io/src/main/java/net/learnjava/ReadFileBenchmark.java)
310310

311311

312312
建议使用优先级: `Java NIO Files` > `NIOFileLineReader` > `AIOFileReader`
313313

314314
#### 其他开源项目
315315

316-
1. [RxIo](https://github.com/javasync/RxIo)
316+
- [RxIo](https://github.com/javasync/RxIo)
317+
318+
#### 参考文档
319+
320+
- [vsCode利用git连接github](https://www.jianshu.com/p/f836da434e18)
317321

318322

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
33
<modelVersion>4.0.0</modelVersion>
4-
<groupId>com.github.kavahub</groupId>
4+
<groupId>io.github.kavahub</groupId>
55
<artifactId>async-file</artifactId>
66
<version>1.0.0-SNA</version>
77
<name>async-file</name>

src/main/java/com/github/kavahub/file/ChannelHelper.java renamed to src/main/java/io/github/kavahub/file/ChannelHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.kavahub.file;
1+
package io.github.kavahub.file;
22

33
import java.io.IOException;
44
import java.nio.channels.Channel;

src/main/java/com/github/kavahub/file/Consts.java renamed to src/main/java/io/github/kavahub/file/Consts.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.kavahub.file;
1+
package io.github.kavahub.file;
22

33
/**
44
*

src/main/java/com/github/kavahub/file/query/Query.java renamed to src/main/java/io/github/kavahub/file/query/Query.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.kavahub.file.query;
1+
package io.github.kavahub.file.query;
22

33
import java.util.Iterator;
44
import java.util.concurrent.CompletableFuture;

src/main/java/com/github/kavahub/file/query/QueryDistinct.java renamed to src/main/java/io/github/kavahub/file/query/QueryDistinct.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.kavahub.file.query;
1+
package io.github.kavahub.file.query;
22

33
import java.util.HashSet;
44
import java.util.concurrent.CompletableFuture;

src/main/java/com/github/kavahub/file/query/QueryFilter.java renamed to src/main/java/io/github/kavahub/file/query/QueryFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.kavahub.file.query;
1+
package io.github.kavahub.file.query;
22

33
import java.util.concurrent.CompletableFuture;
44
import java.util.function.BiConsumer;

src/main/java/com/github/kavahub/file/query/QueryFlatMapConcat.java renamed to src/main/java/io/github/kavahub/file/query/QueryFlatMapConcat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.kavahub.file.query;
1+
package io.github.kavahub.file.query;
22

33
import java.util.concurrent.CompletableFuture;
44
import java.util.function.BiConsumer;

src/main/java/com/github/kavahub/file/query/QueryFlatMapMerge.java renamed to src/main/java/io/github/kavahub/file/query/QueryFlatMapMerge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.kavahub.file.query;
1+
package io.github.kavahub.file.query;
22

33
import java.util.ArrayList;
44
import java.util.List;

0 commit comments

Comments
 (0)