我在csv文件中有230个&#39,000个条目的数据集。 1行看起来像这样:
1849-06-01,24.844,1.402,Abidjan,Côte D'Ivoire,5.63N,3.23W
现在当我尝试将条目拆分成数组,然后创建一个对象并将后一个对象添加到一个arraylist时,我失败了。后来我注意到它与我尝试的条目数有关。我发现20&000; 000是绝对最大值。我的解析器看起来像这样:
try {
new RequestBuilder(RequestBuilder.GET, "test20.csv").sendRequest("", new RequestCallback() {
String data[] = new String[20000];
@Override
public void onResponseReceived(Request req, Response resp) {
String text = resp.getText();
data = text.split("\n");
for(String str: data) {
String[] results = new String[6];
results = str.split(",");
// creates DataTableObject using the constructor
DataTableObject object = new DataTableObject(results[0], results[1], results[2], results[3], results[4], results[5], results[6]);
dataSet.add(object);
}
drawTable(dataSet);
}
@Override
public void onError(Request res, Throwable throwable) {
// handle errors
}
});
} catch (RequestException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
drawTable()
方法只是将所有创建的对象插入到flextable中。
dataSet是ArrayList<DataTableObject>
,这些对象只包含所有Strings
(城市,国家/地区等)
整个事情与GWT 2.7.0
和JDK 1.8
一起运行。
您是否知道如何在不触及浏览器超时的情况下绘制所有230&000条目?
我尝试过没有物体的工作,但这并没有显着减少运行时间。也不会仅按\n
或,
进行拆分。
由于