Module jdk.jfr
Package jdk.jfr.consumer

Class RecordingFile

java.lang.Object
jdk.jfr.consumer.RecordingFile
所有已实现的接口:
Closeable, AutoCloseable

public final class RecordingFile extends Object implements Closeable
一个记录文件。

以下示例显示了如何读取并打印记录文件中的所有事件。

try (RecordingFile recordingFile = new RecordingFile(Paths.get("recording.jfr"))) {
    while (recordingFile.hasMoreEvents()) {
        RecordedEvent event = recordingFile.readEvent();
        System.out.println(event);
    }
}
自 JDK 版本:
9
  • Constructor Details

    • RecordingFile

      public RecordingFile(Path file) throws IOException
      创建一个记录文件。

      只应使用来自可信来源的记录文件。

      参数:
      file - 要打开的文件路径,不能为空
      抛出:
      IOException - 如果不是有效的记录文件,或发生 I/O 错误
      NoSuchFileException - 如果找不到file
      SecurityException - 如果存在安全管理器且其checkRead方法拒绝对文件的读取访问
  • Method Details

    • readEvent

      public RecordedEvent readEvent() throws IOException
      读取记录中的下一个事件。
      返回:
      下一个事件,不能为空
      抛出:
      EOFException - 如果记录文件中不存在更多事件
      IOException - 如果发生 I/O 错误
      参见:
    • hasMoreEvents

      public boolean hasMoreEvents()
      如果记录文件中存在未读事件,则返回true,否则返回false
      返回:
      如果记录中存在未读事件,则返回true,否则返回false
    • readEventTypes

      public List<EventType> readEventTypes() throws IOException
      返回此记录中所有事件类型的列表。
      返回:
      事件类型列表,不能为空
      抛出:
      IOException - 从文件读取时发生 I/O 错误
      参见:
    • close

      public void close() throws IOException
      关闭此记录文件并释放与其关联的任何系统资源。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      抛出:
      IOException - 如果发生 I/O 错误
    • write

      public void write(Path destination, Predicate<RecordedEvent> filter) throws IOException
      过滤事件并将其写入新文件。
      参数:
      destination - 应写入新文件的路径,不能为空
      filter - 确定是否应包含事件的过滤器,不能为空
      抛出:
      IOException - 如果发生 I/O 错误,不是飞行记录文件或无法解析的 JFR 文件版本
      SecurityException - 如果存在安全管理器且其checkWrite方法拒绝对文件的写访问
      自 JDK 版本:
      19
    • readAllEvents

      public static List<RecordedEvent> readAllEvents(Path path) throws IOException
      返回文件中所有事件的列表。

      此方法适用于简单情况,其中一次性读取所有事件很方便。不适用于读取大文件。

      只应使用来自可信来源的记录文件。

      参数:
      path - 文件路径,不能为空
      返回:
      作为List对象的文件中的事件;List是否可修改取决于实现,因此未指定,不能为空
      抛出:
      IOException - 如果发生 I/O 错误,不是飞行记录文件或无法解析的 JFR 文件版本
      SecurityException - 如果存在安全管理器且其checkRead方法拒绝对文件的读访问