Допустим, у меня есть архив в S3, с которого я хочу прочитать. Мне интересно, как выглядит объем памяти следующего кода:
public BufferedReader getFile(bucketName, key) {
S3Object zippedFile = s3Client.getObject(new GetObjectRequest(bucketName, key));
GZIPInputStream gzp = new GZIPInputStream(zippedFile.getObjectContent());
InputStream isr = InputStreamReader(gzp, StandardCharsets.UTF_8);
fileStream = new BufferedReader(isr);
}
BufferedReader zippedFileStream = getFile(bucketName, key);
//do some processing on zippedFileStream
zippedFileStream.close();
Я немного незнаком с тем, как файловые указатели / потоки работают в Java. Учитывая, что этот файл, который я собираюсь распаковать, имеет большой размер (порядка гигабайта), как быстро я могу начать обработку этого файла? Что я хочу сделать, так это избегать хранения огромных объемов данных в памяти, если это возможно. Ценю помощь!