Предупреждение при использовании WriterOutputStream - он не всегда обрабатывает запись двоичных данных в файл правильно / так же, как обычный поток вывода. У меня была проблема с этим, которая заняла некоторое время, чтобы выследить.
Если вы можете, я бы порекомендовал использовать выходной поток в качестве основы, а если вам нужно написать строки, используйте для этого поток-оболочку OUtputStreamWriter вокруг потока. Гораздо надежнее преобразовать текст в байты, чем наоборот, поэтому, вероятно, WriterOutputStream не является частью стандартной библиотеки Java