public class FileUtil {
private static final long step=5000;
public static final String ARR="arr";
public static final String POINT="point";
public static Map tail(Long end,long num,File file,String charset)throws Exception{
if(num=temp_end&&end!=null){break;}
objects[0]=point;
objects[1]=new String(temp.getBytes("8859_1"),charset);
if(queue.size()==num){
queue.poll();
}
queue.offer(objects);
}
if(queue.size()0){
long last_num=num-queue.size();
Object[] header = queue.peek();
if(header==null){throw new RuntimeException("FileUtil step:"+step+" not enough long");}
Map m = tail((Long)header[0], last_num, file,charset);
map.put(POINT,m.get(POINT));
map.put(ARR,ArrayUtils.addAll((Object[])m.get(ARR),queue.toArray()));
}else if(queue.size()>0){//获取的行数不够,并且没有到达TOP
map.put(POINT,queue.peek()[0]);
map.put(ARR,queue.toArray());
}
}finally {
if(acc!=null){
try {
acc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return map;
}
}