Java OutOfMemoryError при чтении большого текстового файла

Я новичок в Java и работаю над чтением очень больших файлов, мне нужна помощь, чтобы понять проблему и решить ее. У нас есть устаревший код, который необходимо оптимизировать, чтобы он работал правильно. Размер файла может варьироваться от 10 до 10 ГБ. Единственная проблема начинается, когда размер файла превышает 800 МБ.

InputStream inFileReader = channelSFtp.get(path); // file reading from ssh.
byte[] localbuffer = new byte[2048];
ByteArrayOutputStream bArrStream = new ByteArrayOutputStream();

int i = 0;
while (-1 != (i = inFileReader.read(buffer))) {
bArrStream.write(localbuffer, 0, i);
}

byte[] data = bArrStream.toByteArray();
inFileReader.close();
bos.close();

Мы получаем ошибку

java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2271)
    at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)
    at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)

Любая помощь будет оценена?

Ответы на вопрос(14)

Ваш ответ на вопрос