<div>Спасибо за ревью, исправил недочёты, тесты тоже добавил.<br></div><div><br></div><blockquote><div>21.03.2018, 21:31, Maxim Karpov <<a href="mailto:me@makkarpov.ru" data-mce-href="mailto:me@makkarpov.ru">me@makkarpov.ru</a>></div><!-- Hostname: benito108.mail.rambler.ru --><div class="messageBodyContainer isInnerPart" id="part1"><div class="messageBody isPlainText">В целом код хороший, хотя и с небольшими замечаниями.<br> <br> 1. (и основное) Если fopencookie() по каким-то неведомым причинам таки <br> не сможет создать поток, то вызывающий код обрушит через exit() всю JVM. <br> Хотелось бы видеть создание и выкидывание исключения, причем внутри <br> самой функции открытия потока.<br> <br> 2. Тестовый код лучше не смешивать с основным и вынести как в отдельный <br> .cpp-файл, так и в отдельный класс. Можно добавить еще тесты на fscanf и <br> ungetc, хотя, наверное, и не обязательно, ведь если поток работает, а <br> scanf - нет, то это уже проблемы libc.<br> <br> 3. В тестовом коде можно использовать NewStringUTF, пляски с буферами <br> будет меньше.<br></div></div></blockquote>