update/add: 新增文件下载方法;
This commit is contained in:
1 parent
bdac62ac45
commit
87f2fec4d9
7 files changed
+313
-23
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# GNU Java Utils Library
|
||||
|
||||
一个轻量级 Java 工具库,提供压缩/解压、终端彩色输出、文件创建与管理、文件加密/解密、随机数生成、硬件标识等功能。
|
||||
一个轻量级 Java 工具库,提供压缩/解压、终端彩色输出、文件创建与管理、文件加密/解密、文件下载(单线程/多线程)、随机数生成、硬件标识等功能。
|
||||
|
||||
> 注:此项目/仓库已同步到 Github:[https://github.com/databasemysql233-debug/gnu_java_utils_library.git](https://github.com/databasemysql233-debug/gnu_java_utils_library.git)
|
||||
> 原项目/仓库链接:[https://git.opensource-studio.info/database-mysql/gnu_java_utils_library.git](https://git.opensource-studio.info/database-mysql/gnu_java_utils_library.git)
|
||||
@@ -23,7 +23,9 @@ src/main/java/top/gtb520/java/gnu/java/utils/library/
|
||||
│ └── compress.java # 压缩/解压工具类
|
||||
├── file/
|
||||
│ ├── CreateFile.java # 文件创建/保存工具类
|
||||
│ └── EncryptionAndDecryption.java # 文件加密/解密工具类
|
||||
│ ├── EncryptionAndDecryption.java # 文件加密/解密工具类
|
||||
│ └── download/
|
||||
│ └── file.java # 文件下载工具类(单线程/多线程)
|
||||
├── print/
|
||||
│ ├── echo.java # 终端彩色输出工具类
|
||||
│ └── ColorNameEnum.java # 颜色名称枚举
|
||||
@@ -273,7 +275,40 @@ File keyFile = keyDir.resolve("data.txt.key").toFile();
|
||||
File decrypted = EncryptionAndDecryption.DecryptionFile(file, EncryptionType.AES, keyFile);
|
||||
```
|
||||
|
||||
### 5. 随机生成器 (`random`)
|
||||
### 5. 文件下载 (`file/download`)
|
||||
|
||||
支持单线程和多线程文件下载,多线程模式通过 HTTP `Range` 请求分块并行下载,自动创建父目录。
|
||||
|
||||
| 方法 | 说明 | 参数 |
|
||||
|-------------------------------------------------------|---------------------------------------|-------------------------------------------------------------|
|
||||
| `file.DownloadFile(URL, destFilePanth)` | 单线程下载文件 | `URL` 文件地址,`destFilePanth` 保存路径 |
|
||||
| `file.DownloadFile(URL, destFilePanth, threadNum)` | 多线程下载文件(支持断点续传) | `URL` 文件地址,`destFilePanth` 保存路径,`threadNum` 线程数枚举 |
|
||||
|
||||
**线程数枚举 (`ThreadNum`):**
|
||||
|
||||
| 枚举值 | 线程数 |
|
||||
|-------------------|------|
|
||||
| `THREAD_NUM_II` | 2 |
|
||||
| `THREAD_NUM_IV` | 4 |
|
||||
| `THREAD_NUM_VI` | 6 |
|
||||
| `THREAD_NUM_VIII` | 8 |
|
||||
| `THREAD_NUM_X` | 10 |
|
||||
|
||||
> 多线程下载要求服务器支持 `Accept-Ranges: bytes`(HTTP 206 响应),否则将抛出 `RuntimeException`。
|
||||
> 入参为 `null` 时抛出 `IllegalArgumentException`;HTTP 请求失败时抛出 `RuntimeException`。
|
||||
|
||||
```java
|
||||
import top.gtb520.java.gnu.java.utils.library.utils.file.download.file;
|
||||
import top.gtb520.java.gnu.java.utils.library.utils.file.download.file.ThreadNum;
|
||||
|
||||
// 单线程下载
|
||||
file.DownloadFile("https://example.com/file.zip", "/path/to/save/file.zip");
|
||||
|
||||
// 多线程下载(4 线程)
|
||||
file.DownloadFile("https://example.com/file.zip", "/path/to/save/file.zip", ThreadNum.THREAD_NUM_IV);
|
||||
```
|
||||
|
||||
### 6. 随机生成器 (`random`)
|
||||
|
||||
| 方法 | 说明 | 参数 |
|
||||
|---------------------------------------------|--------------|------------------------------|
|
||||
@@ -289,7 +324,7 @@ String str = defaults.randomString(16); // 生成 16 位随机字符串(
|
||||
|
||||
> `random(start, end)` 结果包含两端;`randomString(length)` 的长度不能为负数,否则抛出 `IllegalArgumentException`。
|
||||
|
||||
### 6. 硬件标识生成器 (`hwid`)
|
||||
### 7. 硬件标识生成器 (`hwid`)
|
||||
|
||||
组合 CPU、主板、MAC 地址、硬盘序列号等信息,通过 SHA-256 生成唯一的硬件标识符(HWID)。支持 Windows、macOS、Linux 及 Android 平台。
|
||||
|
||||
@@ -307,7 +342,7 @@ System.out.println("HWID: " + hwid);
|
||||
> 单项硬件信息获取失败时自动跳过该组件(如无序列号的硬件);全部失败时返回 `"UNKNOWN_HWID"`。
|
||||
> MAC 地址优先取非回环、非虚拟网卡,避免虚拟网卡导致 HWID 漂移。
|
||||
|
||||
### 7. 版本信息 (`version`)
|
||||
### 8. 版本信息 (`version`)
|
||||
|
||||
提供项目版本信息及编译时 Java/OpenJDK 版本常量。
|
||||
|
||||
@@ -338,7 +373,7 @@ main.version.getOpenJDKRuntimeEnvironment(); // OpenJDK 运行时环境
|
||||
main.version.getOpenJDK64BitServerVM(); // OpenJDK 64-Bit Server VM
|
||||
```
|
||||
|
||||
### 8. 运行时信息 (`runtime`)
|
||||
### 9. 运行时信息 (`runtime`)
|
||||
|
||||
获取当前 Java 运行时环境信息,包括 JAR 路径、JVM 版本、位数等。
|
||||
|
||||
@@ -416,7 +451,7 @@ mvn test
|
||||
|
||||
## 使用
|
||||
|
||||
编译成功后,将 `target/gnu_java_utils_library-1.8-SNAPSHOT.jar` 放入项目依赖中,或在 Releases 中下载最新版 JAR 包。
|
||||
编译成功后,将 `target/gnu_java_utils_library-1.9-SNAPSHOT.jar` 放入项目依赖中,或在 Releases 中下载最新版 JAR 包。
|
||||
|
||||
**pom.xml 引入本地依赖:**
|
||||
|
||||
@@ -425,9 +460,9 @@ mvn test
|
||||
<dependency>
|
||||
<groupId>top.gtb520.java.gnu</groupId>
|
||||
<artifactId>gnu_java_utils_library</artifactId>
|
||||
<version>1.8-SNAPSHOT</version>
|
||||
<version>1.9-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/gnu_java_utils_library-1.8-SNAPSHOT.jar</systemPath>
|
||||
<systemPath>${project.basedir}/lib/gnu_java_utils_library-1.9-SNAPSHOT.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user