我正在编写小型日志解析器,该解析器应该在文件中找到一些标签。文件很大(512mb),具有以下结构:
[2018.07.10 00:30:03:125] VersionInfo\886
...some data...
[2018.07.10 00:30:03:109][TraceID: 8HRWSI105YVO91]->IncomingTime\16
...some data...
[2018.07.10 00:30:03:109][TraceID: 8HRWSI105YVO91]->IncomingData\397
...some data...
[2018.07.10 00:30:03:749][TraceID: 8HRWSI105YVO91]->OutgoingData\26651
...somedata...
每个块IncomingTime, IncomingData, OutgoingData, etc.的末尾都有块大小(字符数,而不是字节数)886, 16, 397, 26651。有些块非常大,没有大缓冲区就无法读取(如果我使用bufio)。我想使用跳过不必要的块file.Seek。
问题是,file.Seek需要字节长度,并且我只有字符计数(块可能具有带两字节字符的unicode数据)。有机会跳过使用字符计数的块吗?
神不在的星期二
相关分类