Java 读取包含大量数据的日志文件的最佳方法是什么?

Java 读取包含大量数据的日志文件的最佳方法是什么?,java,Java,我已经创建了一个记录器工具,它可以监视文件中的更改,并从更改后的文件中获取所有数据。 我遵循了以下步骤: 1.注册文件侦听器以查找已更改的文件。它将告诉我已更改的文件的名称 2.我的正则表达式将根据指定的模式从文件中读取log4j数据 3.使用BufferedReader读取数据,BufferedReader从文件开始到文件结束顺序读取数据。将所有数据放入将保持插入顺序的列表中。所以基本上我会把最新的日志列在列表的末尾 4.获取前100条记录并在UI上显示 我想知道我的方法是否正确,或者是否有任

我已经创建了一个记录器工具,它可以监视文件中的更改,并从更改后的文件中获取所有数据。 我遵循了以下步骤:
  • 1.注册文件侦听器以查找已更改的文件。它将告诉我已更改的文件的名称
  • 2.我的正则表达式将根据指定的模式从文件中读取log4j数据
  • 3.使用BufferedReader读取数据,BufferedReader从文件开始到文件结束顺序读取数据。将所有数据放入将保持插入顺序的列表中。所以基本上我会把最新的日志列在列表的末尾
  • 4.获取前100条记录并在UI上显示 我想知道我的方法是否正确,或者是否有任何方法可以更快地读取文件数据,因为日志可能以GB为单位,读取整个日志并没有效率,并且无法将其存储到列表中。 这将对内存产生巨大影响,因为维护此类数据的列表不是一个好主意。
    有其他选择吗,建议?

    因为您只需要100条记录,所以我建议您只阅读足够的行来查找所需的数据。你不应该害怕GB的数据。您拥有GB的内存和磁盘,只需显示用户所能看到的数据即可。我不会认为你有一个性能问题,直到你衡量它。您可以在合理的时间范围内(使用正确的硬件)实际管理TB的数据