Последовательно пишу несколько килобайт в файл через BufferedWriter, но изредка нужно возвращаться назад и перезаписывать несколько байт. Поэтому вместе с BufferedWriter разделяю SeekableByteChannel.
Когда хочу вернуться назад и переписать пару байтиков делаю сначала BufferedWriter#flush, а затем прыгаю на позицию SeekableByteChannel#position(long). И пишу несколько байтиков в BufferedWriter. Затем с такой же логикой возвращаюсь в текущий конец файла.
Глупо ли так делать? Может быстрее будет писать не сразу в файл, а в StringBuilder, а затем всё сбрасывать в файл последовательно?