Вы хотите использовать OutputStreamWriter
для упаковки OutputStream
. Это позволит вам указать кодировку и написать char
с вместо byte
с. Задача OutputStreamWriter
состоит в том, чтобы знать кодировку и соответствующим образом конвертировать char
с в byte
с. Если вы указали, что ваш OutputStreamWriter
использует UTF-8, и вы пишете символ, который использует один байт в UTF-8, вы можете ожидать, что в поток будет записан только один байт.
try (OutputStreamWriter writer = new OutputStreamWriter(myOutputStream, "UTF-8")) {
writer.write('x');
}
Вы также можете обернуть OutputStreamWriter
в BufferedWriter
для повышения эффективности.
Но выполнить кодирование самостоятельно, используя метод getBytes
класса String
, - просто заново изобрести колесо. Не делай этого.
Более подробную информацию о OutputStreamWriter
можно найти в Javadoc .