Я понятия не имею о реализации Android, но в стандартной Java старый добрый IO часто превосходит NIO.
Например, я считаю, что следующий код должен быть относительно быстрым, если у вас есть массив байтов:
byte[] bytes = new byte[10000];
// ...
FileOutputStream out = new FileOutputStream(...);
try {
out.write(bytes);
} finally {
out.close();
}
Имейте в виду, что это будет блокировать, пока не будет записан весь массив байтов. Но вы не говорите, является ли неблокирующее поведение проблемой или нет.
Еще одна вещь, которую вы не упоминаете, это то, как вы собираетесь кодировать целые числа при записи в файл. Вам необходимо выполнить кодирование в памяти перед записью в файл, но возможно, что массив слишком велик, чтобы кодировать все сразу, и в этом случае вы можете кодировать / записывать блоки по несколько сотен килограмм.