日期:2014-05-18  浏览次数:20740 次

我想请问一下可以把一个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循环里就不会覆盖了,楼主试试。