package test;
import java.util.HashMap;
import java.util.Map;
import *;
public class MountDataProcess {
public static Map<String, String>[]
getBigDatas(String
fileName) {
BufferedReader br = null;
int rowNumber = 0;
//用于统计文件的行数,也就是记录的个数
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
while(br.readLine() != null){
rowNumber++;
}
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
//类似于在web中经常做的分页,可以分批保存处理。
Map<String, String>[] mapArray = new HashMap[10];
//对数组初始化
for (Map<String, String> map : mapArray) {
map = new HashMap<String, String>();
}
for (int i = 0; i < rowNumber; i++) {
String str = null;
try {
str = br.readLine();
//从文件中读出一行数据,也就是一条记录
} catch (IOException e) {
e.printStackTrace();
}
String[] s = str.split(" ");//这里假设你的列之间是用空格分割的
for (int j = 1; j < 11; j++) {
if(i > rowNumber/10*j && i > rowNumber/10*(j+1)){
mapArray[j - 1].put(s[0], s[1]);
}
}
}
return mapArray;
}
}
上面是我临时写的一个方法,可以尝试,自己先编译看有错误没,我这里没有那么多的数据。
思路很简单:
模仿在页面分页时候的算法,建立一个Map的数组,然后将数据分批保存进不同的Map中就可以了。