BitTraceProject

BitTrace Project API Documents


file.go

<p>[TOC]</p> <h3>简要描述</h3> <p>文件相关接口,完成如下任务:</p> <ul> <li>从指定的行开始读取一个文件的数据。</li> </ul> <h3>函数接口列表</h3> <ul> <li><code>func ScanFileLines(filePath string, startN int64) ([][]byte, bool, error)</code></li> </ul> <h3><code>ScanFileLines</code> 函数接口</h3> <h5>函数参数介绍</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">filePath</td> <td style="text-align: left;">string</td> <td>待读取的文件路径</td> </tr> <tr> <td style="text-align: left;">startN</td> <td style="text-align: left;">int64</td> <td>读取文件的起始行</td> </tr> </tbody> </table> <h5>返回值介绍</h5> <table> <thead> <tr> <th style="text-align: left;">返回值名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">lines</td> <td style="text-align: left;">[][]byte</td> <td>读取到的数据行</td> </tr> <tr> <td style="text-align: left;">eof</td> <td style="text-align: left;">bool</td> <td>当前文件是否到达 eof,这里是自定义的 eof。true,指的是当天的日志输出结束,需要切换到读取下一天的日志</td> </tr> <tr> <td style="text-align: left;">err</td> <td style="text-align: left;">error</td> <td>返回的错误</td> </tr> </tbody> </table> <h5>调用逻辑</h5> <ul> <li>如果当前 startN 超出了文件当前行数,但是没有 eof,则直接返回。</li> <li>如果当前 startN 超出了文件当前行数,但是已经 eof,则直接返回。</li> <li>如果当前 startN 没有超出文件当前行数,则从 startN 开始读数据,直到遇到 eof 或者到达文件结尾,直接返回。</li> </ul> <h5>注意事项</h5> <ul> <li>目前 ScanFileLines 的实现方式,能够适配数据行很长的情况,并且支持读取容器外部映射的文件。</li> <li>以前采用的 Scan 实现方式不支持数据行超过一定长度情况;而 mmap 实现方式不支持读取容器外部映射文件。</li> </ul>

页面列表

ITEM_HTML