Я не думаю, что это возможно по следующим причинам:
- Как вы пишете файл, не «читая» его?
- Вам нужно прочитать текст, чтобы узнать, где находится граница символа (кодировка не обязательно равна 1 байту). Это означает, что вы не можете рассматривать файл как двоичный файл.
Неужели невозможно читать построчно и обрабатывать это так? Это также экономит дополнительное пространство, которое разделяемые файлы будут занимать вместе с оригиналом. Для справки, чтение текстового файла просто:
public static void loadFileFromInputStream(InputStream in) throws IOException {
BufferedReader inputStream = new BufferedReader(new InputStreamReader(in));
String record = inputStream.readLine();
while (record != null) {
// do something with the record
// ...
record = inputStream.readLine();
}
}
Вы читаете только одну строку за раз ... поэтому размер файла не влияет на производительность вообще. Вы также можете остановиться в любое время. Если вы любите приключения, вы также можете добавить строки в отдельные потоки, чтобы ускорить обработку. Таким образом, IO может продолжать работать, пока вы обрабатываете свои данные.
Удачи! Если по какой-то причине вы нашли решение, пожалуйста, опубликуйте его здесь. Спасибо!