Начиная с текущей последней версии 3.4.2, я боюсь, что нет никакого способа сделать это с языком Gremlin. Причина, по которой он пишет только в файл, а не в что-то вроде Java OutputStream
, заключается в том, что шаг io()
предназначен для независимого от языка программирования. Python и другие языки вне JVM не имеют возможности создать или указать такой объект, поэтому запись в файл делает его работающим по всем направлениям. Я не знаю, изменится ли это в будущем, если мы не придумали разумный API, который бы интуитивно работал на всех языках программирования.
Поскольку вы используете TinkerGraph в памяти, вы можете обойти Гремлин и вернуться к очень старому способу действий:
Graph graph = TinkerFactory.createModern();
try (OutputStream os = new FileOutputStream("tinkerpop-modern.xml")) {
graph.io(IoCore.graphml()).writer().normalize(true).create().writeGraph(os, graph);
}
Вы бы просто заменили FileOutputStream
на тот тип OutputStream
, который вы хотели использовать. Этот подход использует старый API-интерфейс Graph, который, я думаю, просто устарел в новых версиях, поэтому эта опция все еще должна быть доступна для вас. Обратите внимание, что если вы не используете JVM, единственный способ вернуть строку - это отправить скрипт Gremlin на Gremlin Server.