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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
关闭此记录文件并释放与其关联的任何系统资源。boolean
如果记录文件中存在未读事件,则返回true
,否则返回false
。static List
<RecordedEvent> readAllEvents
(Path path) 返回文件中所有事件的列表。读取记录中的下一个事件。返回此记录中所有事件类型的列表。void
write
(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
方法拒绝对文件的读访问
-