我想请问一下可以把一个300M的txt文档的内容通过java读取之后复制到string中吗?
我想把一个300M的txt文档用java读取之后内容存到string中代码如下:
FileInputStream fis = new FileInputStream(files[i]);
String content = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
StringBuffer buffer = new StringBuffer("");
content = reader.readLine();
while (content != null) {
buffer.append(content);
content = reader.readLine();
}
可是一运行就提示了这个错误
Exception in thread "main"
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at com.langhua.Indexer.main(Indexer.java:60)
这是因为内存不够吗?是不是不能将这么大的文件存为string类型??
------解决方案--------------------一开始我是把Document作为一个全局变量,然后也出现覆盖,放到while循环里就不会覆盖了,楼主试试。