现在做一个数据导入,在读取txt文本对于大文本读取速度很慢...
public List<BarCode> insertBarCodes(String path) {
InputStreamReader input = new FileReader().FileReader(path);
List<BarCode> list = new ArrayList<BarCode>();
try {
if(input!=null){
BufferedReader bufferedReader = new BufferedReader(input);
if (bufferedReader != null) {
String lineTXT = null;
BarCode barCode = null;
while ((lineTXT = bufferedReader.readLine()) != null) {
if(lineTXT.lastIndexOf("")!=-1){
lineTXT=lineTXT+"1";
};
String[] version = lineTXT.split("\t");
if (version.length == 14 ) {
barCode = new BarCode();
barCode.setAB_ARTICLE_ID(version[0]);
barCode.setAB_BARCODE(version[1]);
barCode.setAB_PACKAGE_TYPE(version[2]);
barCode.setAB_BARCODE_TYPE(version[3]);
barCode.setAB_BARCODE_STATUS(version[4]);
// barCode.setAB_HQ_EFFECTIVE_DATE(version[5]);
barCode.setAB_HQ_EFFECTIVE_DATE("2011-10-11");
barCode.setAB_STORE_EFFECTIVE_DATE("2011-10-11");
// barCode.setAB_STORE_EFFECTIVE_DATE(version[6]);
barCode.setAB_CREATE_USER_ID(version[7]);
barCode.setAB_CREATE_DATE("2011-10-11");
// barCode.setAB_CREATE_DATE(version[8]);
barCode.setAB_UPDATE_USER_ID(version[9]);
barCode.setAB_UPDATE_DATE("2011-10-11");
// barCode.setAB_UPDATE_DATE(version[10]);
barCode.setAB_STATUS(version[11]);
barCode.setAB_RSV_STATUS(version[12]);
// barCode.setAB_RSV_DATE(version[13]);
barCode.setAB_RSV_DATE("2011-10-11");
list.add(barCode);
}
}
}
input.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
这是读取的代码片段... 文件小的时候读取很快,对于大文本的话可能就死掉了了..求大侠简答
------解决方案--------------------------------------------------------
用LineNumberReader试试?最主要是你目前出了什么错误?字符串池溢出?
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
我现在也遇到类似的问题,而且我可能需要读取超过100M的txt文件,换个封装流试下吧。