Udostępnianie strumieni wyjściowych przez interfejs JNI
Piszę aplikację Java, która używa biblioteki C ++ za pośrednictwem interfejsu JNI. Biblioteka C ++ tworzy obiekty typuFoo
, które są należycie przekazywane przez JNI do Javy.
Załóżmy, że biblioteka ma funkcję wyjściową
void Foo::print(std::ostream &os)
i mam JavaOutputStream out
. Jak mogę się odwołaćFoo::print
z Java, tak aby wyjście było wyświetlaneout
? Czy jest jakiś sposób na przymuszenieOutputStream
do astd::ostream
w warstwie JNI? Czy mogę przechwycić dane wyjściowe w buforze warstwy JNI, a następnie skopiować ją doout
?