日期:2014-05-20 浏览次数:20754 次
/** *你懂得。。。 */ 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对象,查看缓存中是否存在该对象,不存在便添加到缓存中 } }