Как эффективно читать большие файлы с помощью Java / Android - PullRequest
0 голосов
/ 03 мая 2020

Мое android приложение получает с сервера специальный файл (текстовый файл) в следующем формате:

----- ИНФОРМАЦИЯ О ЗОНЕ ------

// здесь текст, содержащий информацию о полученном контенте

----- END ZONE -------

----- ZONE CONTENT --------

// полное содержимое

-------- END ZONE ---------

------- ZONE ADD-- ----

// Дополнительные детали

------ END ZONE -------

Это мой код для чтения файла ( строка за строкой) и извлеките INFO и CONTENT и ДОПОЛНИТЕЛЬНЫЕ ДЕТАЛИ в память для выполнения некоторых операций.

        String infoZone= "\t\t\t\t-------ZONE INFO-------";
        String contentZone= "\t\t\t\t-------ZONE CONTENT-------";
        String addZone= "\t\t\t\t-------ZONE ADD-------";
        String endZone= "\t\t\t\t-------END ZONE-------";
        BufferedReader reader;
        reader = new BufferedReader(new FileReader(receivedFile));
        String line = reader.readLine();
        if(line.equals(infoZone)){
            while(!line.equals(endZone)) {
                line = reader.readLine();
                if(!line.equals("") && !line.equals(endZone) )
                    infoText+= line;
            }
        }
        line = reader.readLine();
        if(line.equals(contentZone)){
            while(!line.equals(endZone)) {
                line = reader.readLine();
                if(!line.equals("") && !line.equals(endZone) )
                    contentText+= line;
            }
        }
line = reader.readLine();
        if(line.equals(addZone)){
            while(!line.equals(endZone)) {
                line = reader.readLine();
                if(!line.equals("") && !line.equals(endZone) )
                    contentText+= line;
            }
        }

Этот код работает отлично подходит для небольших файлов, но когда размер файла больше 2 Мо, приложение становится очень медленным (около 5 минут, чтобы прочитать все CONTENT ).

У вас есть идеи? как извлечь INFO и CONTENT эффективно?

Примечание: максимальный размер полученного файла составляет 10 мес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...