# Reader **Repository Path**: Bowen-Lee/reader ## Basic Information - **Project Name**: Reader - **Description**: 可以帮你达到一边看应用日志,一边读书的目的。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2021-07-29 - **Last Updated**: 2025-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 命令行日志阅读器 这是一个模拟Windows命令提示符界面的日志阅读应用程序,提供了简洁易用的日志文件查看和监控功能。应用程序通过Java Swing实现了类似CMD的用户界面,支持实时查看、滚动显示和同时管理多个日志文件。 ## 项目简介 本项目旨在解决开发和运维过程中查看和监控日志文件的需求。通过熟悉的命令行界面,用户可以方便地打开、阅读和监控日志文件,同时支持多文件切换和位置记忆功能,提升日志阅读效率。 ![主界面展示截图](src/main/java/resources/img/image.png) ## 项目结构 ``` command-prompt-app ├── src │ ├── main │ │ ├── java │ │ │ ├── com │ │ │ │ └── app │ │ │ │ ├── CommandPromptApp.java # 应用程序入口点 │ │ │ │ ├── ReaderWindow.java # 主窗口实现 │ │ │ │ ├── terminal │ │ │ │ │ ├── TerminalEmulator.java # 命令行模拟器 │ │ │ │ │ └── CommandExecutor.java # 命令执行器 │ │ │ │ └── ui │ │ │ │ ├── LimitedDocument.java # 文本容量限制 │ │ │ │ ├── LogFileReader.java # 日志文件读取器 │ │ │ │ └── PromptStyler.java # 界面样式管理 │ │ │ └── resources │ │ │ └── config.properties # 配置文件 │ └── test │ └── java │ └── com │ └── app │ └── CommandPromptAppTest.java # 单元测试 ├── pom.xml # Maven配置文件 └── README.md # 项目文档 ``` ## 项目思路 ### 界面设计: 完全模拟Windows命令提示符界面,包括黑色背景、白色文字、顶部标题栏和自定义边框。 ### 日志读取: - 使用多种文件读取策略,确保支持各种编码的日志文件 - 采用线程池管理文件读取和监控任务,避免阻塞UI线程 - 实现增量读取,只处理文件的新内容,提高效率 ### 交互方式: - 通过命令行输入指令控制应用(如openlog、pauselog等) - 支持快捷键操作(空格键暂停/继续、回车键显示第二个日志) - 右键菜单提供常用功能 ### 窗口管理: - 实现无边框窗口,自定义标题栏和窗口拖动 - 支持从窗口边缘调整大小 - 防止窗口被拖出屏幕边界 ### 状态持久化: - 使用Java Preferences API保存配置和状态 - 记住已打开文件的路径和读取位置 ## 核心功能 ### 双日志文件支持: - 日志文件1:主要日志文件,自动滚动显示,可暂停 - 日志文件2:辅助日志文件(小说),按回车显示5行数据 ### 智能读取: - 日志文件内容实时显示,模拟打印效果 - 监控文件变化,自动显示新增内容 - 处理文件被截断的情况,自动重新读取 ### 状态记忆: - 日志文件1:记住文件路径,每次从头开始读取 - 日志文件2:记住文件路径和读取位置,支持接续读取 ### 用户体验优化: - 模拟CMD的打印效果,逐行显示内容 - 自动滚动到最新内容 - 防止内存溢出,限制缓冲区大小 ### 操作命令: - openlog:打开日志文件1 - openlog2:打开日志文件2 - pauselog:暂停/继续日志滚动 - stoplog:停止读取日志 ## 使用方法 ### 安装与启动 - 确保已安装Java 8或更高版本 - 下载项目源码或编译好的JAR文件 - 启动应用: - 或直接双击JAR文件运行 ### 基本操作 #### 打开日志文件: - 在命令行输入openlog或openlog2 - 或使用右键菜单选择"打开日志文件1/2" - 在文件选择器中选择要查看的日志文件 #### 查看日志: - 日志文件1会自动滚动显示内容 - 按空格键可暂停/继续滚动 - 日志文件2按回车键显示5行内容 #### 窗口操作: - 通过标题栏拖动窗口 - 从窗口边缘拖动调整大小 - 右上角关闭按钮关闭应用 ## 高级功能 - 状态保存:程序会自动记住上次打开的日志文件,重启后自动加载 - 实时监控:程序会持续监控日志文件变化,显示新增内容 - 样式定制:通过修改源码中的常量可以定制界面样式 ## 开发与扩展 本项目使用Java 8和Swing开发,使用Maven管理依赖。如果要进行二次开发,可以参考以下步骤: - 克隆项目仓库 - 使用Maven构建项目:mvn clean install - 导入到IDE中进行修改 ### 主要扩展点: - 添加新的日志解析功能 - 增强文件监控能力 - 添加过滤和搜索功能 - 改进界面样式 本项目为开发和运维人员提供了一个简单高效的日志监控工具,通过熟悉的命令行界面和丰富的功能,帮助用户更轻松地管理和查看日志文件。