init/push
This commit is contained in:
123
README.md
Normal file
123
README.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# GNU Java Utils Library
|
||||
|
||||
一个轻量级 Java 工具库,提供常用的压缩/解压与终端彩色输出功能。
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **Java 25**
|
||||
- **Maven** 构建
|
||||
- **Apache Commons Compress 1.28.0**(压缩功能依赖)
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
src/main/java/top/gtb520/java/gnu/java/utils/library/
|
||||
├── main.java # 统一入口接口
|
||||
├── utils/
|
||||
│ ├── compress/
|
||||
│ │ └── compress.java # 压缩/解压工具类
|
||||
│ └── print/
|
||||
│ ├── echo.java # 终端彩色输出工具类
|
||||
│ └── ColorNameEnum.java # 颜色名称枚举
|
||||
```
|
||||
|
||||
## 功能模块
|
||||
|
||||
### 1. 压缩/解压 (`compress`)
|
||||
|
||||
支持 **Tar.Gz** 和 **Zip** 两种压缩格式的压缩与解压操作,支持单文件和整个目录的递归处理。
|
||||
|
||||
| 方法 | 说明 | 参数 |
|
||||
|------|------|------|
|
||||
| `compress.MakeTarGz(source, dest)` | 将文件或目录压缩为 `.tar.gz` | `source` 源路径,`dest` 压缩包输出路径 |
|
||||
| `compress.UnTarGz(source, dest)` | 解压 `.tar.gz` 到指定目录 | `source` 压缩包路径,`dest` 解压目标目录 |
|
||||
| `compress.MakeZip(source, dest)` | 将文件或目录压缩为 `.zip` | `source` 源路径,`dest` 压缩包输出路径 |
|
||||
| `compress.UnZip(source, dest)` | 解压 `.zip` 到指定目录 | `source` 压缩包路径,`dest` 解压目标目录 |
|
||||
|
||||
**使用示例:**
|
||||
|
||||
```java
|
||||
import top.gtb520.java.gnu.java.utils.library.utils.compress.compress;
|
||||
|
||||
// 压缩目录为 Tar.Gz
|
||||
compress.MakeTarGz("/path/to/source", "/path/to/output.tar.gz");
|
||||
|
||||
// 解压 Tar.Gz
|
||||
compress.UnTarGz("/path/to/output.tar.gz", "/path/to/dest");
|
||||
|
||||
// 压缩文件为 Zip
|
||||
compress.MakeZip("/path/to/file.txt", "/path/to/output.zip");
|
||||
|
||||
// 解压 Zip
|
||||
compress.UnZip("/path/to/output.zip", "/path/to/dest");
|
||||
```
|
||||
|
||||
也可以通过统一入口 `main` 接口调用:
|
||||
|
||||
```java
|
||||
import top.gtb520.java.gnu.java.utils.library.main;
|
||||
|
||||
main.compress.UnTarGz(source, dest);
|
||||
main.compress.TarGz(source, dest);
|
||||
```
|
||||
|
||||
### 2. 终端彩色输出 (`echo`)
|
||||
|
||||
基于 ANSI 转义序列,在终端中输出彩色文本。
|
||||
|
||||
| 方法 | 说明 | 参数 |
|
||||
|------|------|------|
|
||||
| `echo.ColorPrintln(message, color)` | 使用预定义颜色打印 | `message` 文本内容,`color` 颜色枚举 |
|
||||
| `echo.ColorHexPrintln(message, hexColor)` | 使用自定义 ANSI 颜色码打印 | `message` 文本内容,`hexColor` ANSI 颜色代码 |
|
||||
|
||||
**支持的颜色枚举 (`ColorNameEnum`):**
|
||||
|
||||
| 枚举值 | 颜色 |
|
||||
|--------|------|
|
||||
| `RED` | 红色 |
|
||||
| `GREEN` | 绿色 |
|
||||
| `YELLOW` | 黄色 |
|
||||
| `BLUE` | 蓝色 |
|
||||
| `PURPLE` | 紫色 |
|
||||
| `CYAN` | 青色 |
|
||||
|
||||
**使用示例:**
|
||||
|
||||
```java
|
||||
import top.gtb520.java.gnu.java.utils.library.utils.print.echo;
|
||||
import top.gtb520.java.gnu.java.utils.library.utils.print.ColorNameEnum;
|
||||
|
||||
// 使用预定义颜色
|
||||
echo.ColorPrintln("错误信息", ColorNameEnum.RED);
|
||||
echo.ColorPrintln("成功信息", ColorNameEnum.GREEN);
|
||||
|
||||
// 使用自定义 ANSI 颜色码
|
||||
echo.ColorHexPrintln("自定义橙色", "38;5;208");
|
||||
```
|
||||
|
||||
也可以通过统一入口 `main` 接口调用:
|
||||
|
||||
```java
|
||||
import top.gtb520.java.gnu.java.utils.library.main;
|
||||
import top.gtb520.java.gnu.java.utils.library.utils.print.ColorNameEnum;
|
||||
|
||||
main.echo.Println("警告信息", ColorNameEnum.YELLOW);
|
||||
main.echo.ColorHexPrintln("自定义颜色", "31");
|
||||
```
|
||||
|
||||
## 构建
|
||||
|
||||
```bash
|
||||
mvn compile
|
||||
```
|
||||
|
||||
## 异常处理
|
||||
|
||||
压缩/解压方法在以下情况会抛出 `IllegalArgumentException`:
|
||||
|
||||
- **压缩时**:源路径不存在
|
||||
- **解压时**:目标路径不是有效的目录
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目仅供学习与个人使用。
|
||||
Reference in New Issue
Block a user