将文件加载到主内存中

时间:2012-03-22 03:56:21

标签: java file optimization nlp tokenize

我有这个文本文件,其中包含一个单词列表和一组与每个单词相关联的分数。我想阅读文件中的单词和单词,并在我的项目中使用它们。代码是Java,文件本身大约是13MB。当我尝试读取文件时,需要大约15分钟才能完成,有时甚至更长。关于如何从头开始优化或解决这个问题的任何想法。

正在执行的操作是 - 1.阅读每一行(平均情况下约50个字符) 2.使用单个空格分成标记(在一般情况下大约10个标记) 3.将生成的标记存储在一个数组中(此阶段不再存在)

编辑:对不起之前没有发布我的代码,它只是在我的脑海中浮现。 http://pastie.org/3646388 那里有一条线,我循环到10000个值,看看我是否有输出而不是循环直到EOF。

1 个答案:

答案 0 :(得分:1)

您需要发布代码示例,否则我们只是在猜测。但是,如果您正在使用java.io类(InputStream或Reader),那么请确保使用BufferedInputStream或BufferedReader包装InputStream或Reader。

由于您正在阅读文本,因此构建阅读器的代码可能类似于:

new BufferedReader(new InputStreamReader(new FileInputStream("/path/to/file")));

来自BufferedReader JavaDoc:

  

通常,每个读取请求都会产生相应的读取请求   读取基础字符或字节流的请求。它   因此建议在任何Reader周围包装一个BufferedReader   其read()操作可能代价高昂,例如FileReaders和   InputStreamReaders。

您还应该考虑分析您的代码。如果您没有方便的探查器,请尝试JVisualVM。它与JDK一起打包。