以下是我读取数据的方式:
List<String[]> res = new ArrayList<>();
S3Object object = s3.getObject(s3BucketName, path);
InputStream inputStream = object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
while ((line = reader.readLine()) != null) {
res.add(line.split(","));
}
reader.close();
在我读取10M行之后,它将抛出OutOfMemory异常。
我试着用-Xms=20G-Xmx=20G作为参数,奇怪的是当我把它改为-Xms=2m-Xmx=2m时,两个结果都是一样的,它们只能读取10M行。我的方法是将其放入Intellij程序参数框中。
我希望找到一种将所有行读入内存的方法。我的文件是16M行x 16列,只有1G大小,所以20G应该可以。