问题描述
使用 tinkerpop 3.3.3,我能够如下加载 graphml
try (final InputStream stream = getClass().getClassLoader().getResourceAsstream("graph.xml")) {
graph.io(IoCore.graphml()).reader().create().readGraph(stream,newGraph);
}
但 tinkerpop 3.4 已弃用 graph.io()
方法并提供了 GraphTraversalSource#io(String)
。
graph.traversal().io('graph.xml').read().iterate()
此方法的问题在于我无法传递输入流,因为仅支持文件名字符串。因此,我无法导入 jar 类路径中存在的文件。
任何人都知道从 tinkerpop 3.4 apis 中的应用程序类路径导入 graphml 的正确方法
解决方法
TinkerPop 文档明确说明如下:
"注意 GraphTraversalSource.io(String) 不支持从 java.io.InputStream 的读取操作或对 java.io.OutputStream 的写入操作。因此对于需要此功能的读取器或写入器,可以安全地使用此弃用方法。除非所有功能都被 GraphTraversalSource 的 io 步骤替换,否则无意删除此方法。"
因此,如果您正在使用流,则可以继续使用 IoCore。