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