0

我正在尝试在我的应用程序中打印来自 Android Logcat 的最后 200 行左右。到目前为止,我已经能够使用 InputStreamReader 将 Logcat 放入 BufferedReader。问题是我不知道如何跳到缓冲阅读器的末尾然后向后阅读,或者跳到最后 200 行上方并从那里打印。我不想在阅读整个日志时使用蛮力方法。我希望有一个更优雅的解决方案。

谢谢。

4

2 回答 2

2

BufferedReader 不知道行的概念,只知道数据流。如果您不知道一条线有多长,您将很难找到跳转到(EOF - 200 行)的方法。

我建议在它之后填充一个 RingBuffer,存储 200 行,用最新的替换最旧的。这样 BufferedReader 会继续填充 ringBuffer 并使用它来读取。

另一种选择是每 200 行清除一次日志...

于 2012-07-27T17:04:42.353 回答
1

所以这不是我正在寻找的解决方案,而是我想要的。而不是将日志放入 BufferedReader 中,然后将其整理出来并打印出来。我使用 logcat 标签来指定输出文件的大小。

Runtime.getRuntime.exec("logcat -r 160 -f mylog.log")

然后读回文件。

于 2012-07-30T13:59:50.420 回答