这是我读取CSV
文件的代码。我的文件在我的测试设备上打开,我在创建CSV
文件时测试代码,但其他设备显示错误。在这本书中,我读了三行,标题是英语、旁遮普语和时间。我想用Java读取一个巨大的CSV
文件。它包括75000000条线路。问题是,即使我使用最大xms
和xmx
限制,我也得到了:
Java.lang.OutOfMemoryError(超出GC开销限制(
它显示这一行导致错误:
try {
InputStreamReader is = new InputStreamReader(getAssets()
.open(value.concat(".csv")), encoding);
BufferedReader reader = new BufferedReader(is);
reader.readLine();
String line;
StringTokenizer st = null;
while ((line = reader.readLine()) != null) {
// Log.d("hahaha", line);
st = new StringTokenizer(line, ",");
// attributes
addToList(st.nextToken(), st.nextToken());
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
highlightText();
}
},
Integer.parseInt(st.nextToken()) * 1000
);
}
reader.close();
} catch (Exception e) {
Log.d("hahaha", e.getMessage());
}
在清单中启用大堆:
<application
.
.
android:largeHeap="true"
.
.>