проблемы, чтобы написать большую строку в файл - PullRequest
2 голосов
/ 28 июня 2019

Я пытаюсь написать строку в Base64, эта строка представляет файл PDF,

for (int i = 0; i < 500; i++) {
        cedula++;
        escribirArchivo.escribirInfoEnElArchivo(data1.append(pdf).append(",").append(cedula).toString());
        escribirArchivo.escribirInfoEnElArchivo(data2.append(pdf2).append(",").append(cedula).toString());
        escribirArchivo.escribirInfoEnElArchivo(data3.append(pdf3).append(",").append(cedula).toString());
    }

и это мой способ написать файл

  public void escribirInfoEnElArchivo( String infoToWrite) {
    try {
        fileWriter.write(infoToWrite + "\n");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

это потребляет около 2-3 ГБ оперативной памяти в какой-то момент, когда у меня закончилась память, а также выдается ошибка с кучей памяти, как я могу выполнить это лучше?

1 Ответ

1 голос
/ 29 июня 2019

Как сказал azurefrog в своем комментарии, создание всей строки перед ее записью очень дорого для памяти. Вместо того, чтобы собирать строку и передавать ее в escribirInfoEnElArchivo(), просто передайте pdf и используйте средство записи файлов, чтобы написать ее оттуда. Если вам нужно добавить дополнительную информацию, вы можете сделать это в escribirInfoEnElArchivo() после написания PDF-файла.

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