diff --git a/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java b/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java
index 8be4738ac0a5adc38e651e46a003251cd5ae3fb3..3f0c9f6525e3c5bf38bf06950e770f9624df21d7 100644
--- a/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java
+++ b/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java
@@ -28,6 +28,7 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.net.*;
 
+import com.amazonaws.util.IOUtils;
 import com.yahoo.ycsb.ByteArrayByteIterator;
 import com.yahoo.ycsb.ByteIterator;
 import com.yahoo.ycsb.DB;
@@ -427,14 +428,7 @@ public class S3Client extends DB {
       Map.Entry<S3Object, ObjectMetadata> objectAndMetadata = getS3ObjectAndMetadata(bucket, key, ssecLocal);
       InputStream objectData = objectAndMetadata.getKey().getObjectContent(); //consuming the stream
       // writing the stream to bytes and to results
-      int sizeOfFile = (int)objectAndMetadata.getValue().getContentLength();
-      byte[] inputStreamToByte = new byte[sizeOfFile];
-      int len;
-      int offset = 0;
-      while ((len = objectData.read(inputStreamToByte, offset, sizeOfFile - offset)) > 0) {
-        offset += len;
-      }
-      result.put(key, new ByteArrayByteIterator(inputStreamToByte));
+      result.put(key, new ByteArrayByteIterator(IOUtils.toByteArray(objectData)));
       objectData.close();
       objectAndMetadata.getKey().close();
     } catch (Exception e){