java - 使用 Java (1.8) 使用 RSCRLF 而不仅仅是使用 CRLF 打破一条线
问题描述
我目前正在使用文件阅读器(文件输入流和缓冲阅读器)从文件中读取行(这是来自应用程序的专有日志文件,它具有 CRLF 作为换行符,但 RSCRLF 作为记录分隔符。但是当我使用 Java文件阅读器,这些行是根据默认的 CR/LF 读取的,即使它们在记录分隔符(RS)之前是同一行,也被视为不同的行。我开始一个接一个地读取字符(而不是行)并得到一个字节[] 字符数组。但是我如何检查 RSCRLF 字符并在那时打破它?来自 ASCII 表:
RS -> CHAR, 30 -> DEC, 1E -> HEX
CR -> CHAR, 13 -> DEC, D -> HEX
LF -> CHAR, 10 -> DEC, A -> HEX
有任何想法吗?不是在寻找代码,而是在寻找关于如何读取字节并找到 RSCRLF 以在那时中断的想法?
谢谢
解决方案
您可以将 aScanner
与自定义分隔符一起使用,如下所示:
...
Scanner scanner = new Scanner(readable);
scanner.useDelimiter("\u001E\r\n");
while (scanner.hasNext()) {
String record = scanner.next();
...
}
推荐阅读
- matlab - 在 Matlab 中表示电路
- javascript - MySQL JSON 列在 Linux 但不是 Windows 上解析
- laravel - Laravel 显示帖子的最新评论
- r - R:替换缩写词\单词
- hyperledger-fabric - 如何将自定义业务逻辑应用于 Hyperledger 上的背书策略?
- mysql - Bash Script MYSQL 从行中获取列
- c# - 在 WCF 服务 C#\ 中获取服务器端客户端的 Mac 地址
- powershell - 如何使用 PowerShell 自动登录 Chrome。我有一个使用 IE 运行但需要使用 Chrome 的脚本
- java - 错误 [org.hibernate.util.JDBCExceptionReporter] -
我是 docker 新手,运行 docker-compose 文件时出现此错误:错误 [org.hibernate.util.JDBCExceptionReporter] - <Communications link f
- c# - PostgresException:23503:更新或删除表违反外键约束