Я пишу Java-приложение, которое использует библиотеку C++ через интерфейс JNI. Библиотека C++ создает объекты типа Foo
, которые должным образом передаются через JNI в Java.
Предположим, что библиотека имеет функцию вывода
void Foo::print(std::ostream &os)
и у меня есть Java OutputStream out
. Как я могу вызвать Foo::print
из Java, чтобы вывод появился на out
? Есть ли способ OutputStream
к std::ostream
в слое JNI? Могу ли я захватить вывод в буфер уровня JNI и затем скопировать его в out
?