我必须将两个单独的txt文件读入内存。我将从一个txt文件中读取每一行,并将多次从另一个txt文件中的一个txt文件中查找一些内容。
我试图将txt文件读入两个单独的ArrayLists,但是当我在加载后尝试检查大小时,它就是threwjava.lang.OutOfMemoryError:Java堆空间异常。
这是我的代码块:
BufferedReader mtc_txt = new BufferedReader(new FileReader(mtc_path));
BufferedReader mfc_txt = new BufferedReader(new FileReader(mfc_path));
String line;
ArrayList<String> mtc_txt_list = new ArrayList<String>();
ArrayList<String> mfc_txt_list = new ArrayList<String>();
System.out.println("Loading..");
while ((line = mtc_txt.readLine()) != null) {
mtc_txt_list.add(line);
}
while ((line = mfc_txt.readLine()) != null) {
mfc_txt_list.add(line);
}
System.out.println("Loaded..");
System.out.println("MTC num of lines: "+mtc_txt_list.size());
System.out.println("MFC num of lines: "+mfc_txt_list.size());
这是输出:
Loading..
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at Main.replaceSelected(Main.java:39)
at Main.main(Main.java:108)
一个txt文件包含大约90000行,另一个包含524000行。
我想把它们留在记忆中。在Java中执行此操作的最佳方法是什么?
感谢。