一个String只能有20亿个字符长,每个字符要使用2个字节,因此,如果您读取5 GB的行,则将使用10 GB的内存。
我建议您分块阅读文本。
Reader reader = new FileReader("input.txt");try { char[] chars = new char[8192]; for(int len; (len = reader.read(chars)) > 0;) { // process chars. }} finally { reader.close();}
无论文件大小如何,这都将使用大约16 KB。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)