From 7960934d22f271fb5a77dc8ecd9a9afe4e7ef64d Mon Sep 17 00:00:00 2001 From: Sebastian Bittrich Date: Mon, 29 Jul 2019 14:17:52 -0700 Subject: [PATCH] buffering of InputStream during reading --- .../src/main/java/org/rcsb/mmtf/decoder/ReaderUtils.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mmtf-codec/src/main/java/org/rcsb/mmtf/decoder/ReaderUtils.java b/mmtf-codec/src/main/java/org/rcsb/mmtf/decoder/ReaderUtils.java index 2da3ff9..cbef80b 100644 --- a/mmtf-codec/src/main/java/org/rcsb/mmtf/decoder/ReaderUtils.java +++ b/mmtf-codec/src/main/java/org/rcsb/mmtf/decoder/ReaderUtils.java @@ -1,5 +1,6 @@ package org.rcsb.mmtf.decoder; +import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -158,6 +159,11 @@ private static byte[] readFile(Path path) throws IOException { */ public static MmtfStructure getDataFromInputStream(InputStream inStream) throws IOException { + // ensure that InputStream is buffered if needed (i.e. not externally buffered e.g. via GZIPInputStream) + if (!(inStream instanceof BufferedInputStream)) { + inStream = new BufferedInputStream(inStream, 65536); + } + MessagePackSerialization mmtfBeanSeDeMessagePackImpl = new MessagePackSerialization(); return mmtfBeanSeDeMessagePackImpl.deserialize(inStream);