Я не эксперт по Java, но я считаю, что если ваша цель - производительность, вам не стоит читать один мегабайтный файл в нескольких потоках.Большая часть времени, вероятно, тратится на выполнение самой операции ввода-вывода, то есть чтения с диска (напомним, что операции с дисками в миллионы раз медленнее операций с памятью).Конечно, в некоторых случаях это может быть быстрее (например, в системе Linux данные файла могли быть кэшированы, если они были прочитаны или записаны некоторое время назад).
Но при чтении (довольно маленьком,файлы размером в мегабайты, большую часть времени проводит в системе, и ваше кодирование не повлияет на это.
И чтение мегабайтного файла должно происходить быстро на современных компьютерах.Вы могли бы использовать некоторые грязные системные трюки, чтобы улучшить его (например, системный вызов Linux * readahead *, если это абсолютно необходимо).
На самом деле, ваш вопрос меня удивляет.Чтение одного мегабайта сегодня быстро!
С уважением.
Базилик Старинкевич