日期:2014-05-20 浏览次数:20907 次
/**
*你懂得。。。
*/
class Employee{
private int empNo;
private String empName;
private Date onDate;
private Time onTime;
//setter
//getter
//hashcode
//equals
}
/**
*这里就不考虑扩展了,特定功能
*/
public class TextHanlder{
private static Map<String, Employee> empCache = new HashMap<String, Employee>();//缓存读取的行数据
private static Map<String, File> fileCache = new HashMap<String, File>();//不知道你文件变化时文件名是否相同,这里权当文件变化时文件名不同
private static Map<String, Integer> posCache = ...;//每个文件结束位置
public static void handle(String fileName){
File f = null;
if((f = sameFile(fileName)) != null){//同一个文件
int pos = posCaceh.get(fileName);
RandomeAccessFile r = new ....
r.seek(pos);
Employee e = new ...
e.setId(r.readInt);
e.setName(r.readUTF());...
empCache.put(e.empName, e);//添加到缓存中
}else{//新的文件
checkFileContent(f);//检查文件内容,将新的内容添加到缓存中
}
最后将缓存中的内容写入到数据库中
}
/**判断是不是同一个文件**/
public static File sameFile(String fileName){
return fileCache.get(fileName);
}
public static void checkFileContent(File file){
//读取文件构造Employee对象,查看缓存中是否存在该对象,不存在便添加到缓存中
}
}