2015-10-18 2 views
2

У меня есть FileStream (GLib.stdout действительно), и я хочу передать его функции, которая требует OutputStream (Vte.Terminal.write_contents). Как вы конвертируете между собой?Конвертировать из FileStream в OutputStream?

+0

Вы можете использовать 'MemoryOutputStream' для вывода результатов в' uint8 [] '. –

+0

Также вы можете получить собственный 'OutputStream', который записывается непосредственно в' FileStream', все, что вам нужно сделать, это реализовать 'write',' close' и 'flush'. –

ответ

1

Создайте новый UnixOutputStream, используя дескриптор файла из потока, который вы хотите. (, например, new UnixOutputStream(stdout.fileno(), false)

+0

Любопытно, что 'UnixOutputStream' не указан как« известный подкласс »здесь: http://valadoc.org/#!api=gio-2.0/GLib.OutputStream –

+0

Также он не имеет диаграммы иерархии объектов. –