java.lang.Object
jdk.jfr.consumer.RecordingFile
- 所有已实现的接口:
-
Closeable,AutoCloseable
一个记录文件。
以下示例显示了如何读取并打印记录文件中的所有事件。
try (RecordingFile recordingFile = new RecordingFile(Paths.get("recording.jfr"))) {
while (recordingFile.hasMoreEvents()) {
RecordedEvent event = recordingFile.readEvent();
System.out.println(event);
}
}
- 自 JDK 版本:
- 9
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()关闭此记录文件并释放与其关联的任何系统资源。boolean如果记录文件中存在未读事件,则返回true,否则返回false。static List<RecordedEvent> readAllEvents(Path path) 返回文件中所有事件的列表。读取记录中的下一个事件。返回此记录中所有事件类型的列表。voidwrite(Path destination, Predicate<RecordedEvent> filter) 过滤事件并将其写入新文件。
-
Constructor Details
-
RecordingFile
创建一个记录文件。只应使用来自可信来源的记录文件。
- 参数:
-
file- 要打开的文件路径,不能为空 - 抛出:
-
IOException- 如果不是有效的记录文件,或发生 I/O 错误 -
NoSuchFileException- 如果找不到file -
SecurityException- 如果存在安全管理器且其checkRead方法拒绝对文件的读取访问
-
-
Method Details
-
readEvent
读取记录中的下一个事件。- 返回:
- 下一个事件,不能为空
- 抛出:
-
EOFException- 如果记录文件中不存在更多事件 -
IOException- 如果发生 I/O 错误 - 参见:
-
hasMoreEvents
public boolean hasMoreEvents()如果记录文件中存在未读事件,则返回true,否则返回false。- 返回:
-
如果记录中存在未读事件,则返回
true,否则返回false。
-
readEventTypes
返回此记录中所有事件类型的列表。- 返回:
- 事件类型列表,不能为空
- 抛出:
-
IOException- 从文件读取时发生 I/O 错误 - 参见:
-
close
关闭此记录文件并释放与其关联的任何系统资源。- 指定者:
-
close在接口AutoCloseable中 - 指定者:
-
close在接口Closeable中 - 抛出:
-
IOException- 如果发生 I/O 错误
-
write
过滤事件并将其写入新文件。- 参数:
-
destination- 应写入新文件的路径,不能为空 -
filter- 确定是否应包含事件的过滤器,不能为空 - 抛出:
-
IOException- 如果发生 I/O 错误,不是飞行记录文件或无法解析的 JFR 文件版本 -
SecurityException- 如果存在安全管理器且其checkWrite方法拒绝对文件的写访问 - 自 JDK 版本:
- 19
-
readAllEvents
返回文件中所有事件的列表。此方法适用于简单情况,其中一次性读取所有事件很方便。不适用于读取大文件。
只应使用来自可信来源的记录文件。
- 参数:
-
path- 文件路径,不能为空 - 返回:
-
作为
List对象的文件中的事件;List是否可修改取决于实现,因此未指定,不能为空 - 抛出:
-
IOException- 如果发生 I/O 错误,不是飞行记录文件或无法解析的 JFR 文件版本 -
SecurityException- 如果存在安全管理器且其checkRead方法拒绝对文件的读访问
-