我正在尝试在我的应用中打印Android Logcat中的最后200行。 到目前为止,我已经能够使用InputStreamReader将Logcat导入BufferedReader。问题是我不知道如何跳到缓冲读取器的末尾,然后向后读,或跳到最后200行的正上方并从那里打印。 我不想做蛮力方法,我读了整个日志。我希望有一个更优雅的解决方案。
感谢。
答案 0 :(得分:2)
BufferedReader不知道一行的概念,只知道数据流。如果您不知道线路的长度,您将很难找到跳转到(EOF - 200线)的方法。
我建议在它之后填充一个RingBuffer,存储200行,最新的替换最旧的。这样,BufferedReader继续填充ringBuffer并使用它来读取。
另一种选择是每200行清除一次日志......
答案 1 :(得分:1)
所以这不是我想要的解决方案,而是做我想要的。而不是将日志带入BufferedReader,然后将其排序并打印出来。我使用logcat标签来指定输出文件的大小。
Runtime.getRuntime.exec("logcat -r 160 -f mylog.log")
然后回读文件。