不是hashmap存不了这么多,是你内存不够,而且你这还是32位的系统,内存才那么点。你想做这种分词完全走内存是不现实的,单独内存实现总有内存到达上限的时候,应该内存与磁盘(或数据库)结合使用,解析一定数量的文档,将分好的词存到磁盘上,释放内存,再读取。。。最后通过磁盘统一读取。你可以参考下lucene的实现。
我觉得应该不至于处理不了,处理完一个文件后及时释放资源应该不会有什么问题,从你给的错误信息如果没有更详细的内容基本看不出来是什么问题。