zoukankan      html  css  js  c++  java
  • CursorFileManager对cursor文件的读写

    public class CursorFileManager implements CursorManager{public void write(String key, LongCursor cursor) throws IOException
        {
            File file = new File(key);
            if (cursor == null) {
                if (file.exists()) {
                    file.delete();
                }
                return;
            }
    
        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(file);
            JSON.writeJSONStringTo(cursor, fileWriter, new SerializerFeature[0]);
        } catch (Exception e) {
            this.logger.error(e.getMessage(), e);
        } finally {
            if (fileWriter != null)
                fileWriter.close();
        }
      }
    
    public LongCursor read(String key){
        JSONReader reader = null;
        try {
            File file = new File(key);
            this.logger.info("try to read cursor from file={}", file.getAbsolutePath());
            if (!file.exists()) {
                return null;
            }
            reader = new JSONReader(new FileReader(file));
            LongCursor cursor = (LongCursor)reader.readObject(LongCursor.class);
            return cursor;
        } catch (Exception e) {
            this.logger.error(e.getMessage(), e);
        } finally {
            if (reader != null)
              reader.close();
        }
        return null;
    }
    

    cursor格式:

    {"biz":"false-0","extraInfo":1469203484000,"from":1469203208000,"to":1469203508000}

    public LongCursor read() {
        LongCursor cursor = cursorManager.read(cursorPath + "/" + fileName);
        if (cursor != null) {
            String biz = cursor.getBiz();
            if (biz != null && biz.length() > 0) {
                String[] secs = biz.split("-");
                shouldWait = Boolean.parseBoolean(secs[0]);
                if (secs.length > 1) {
                    completedOrderId = Long.valueOf(secs[1]);
                }
            }
        }
        return cursor;
    }
    
    public void write(LongCursor cursor) throws IOException {
        cursor.setBiz(shouldWait + "-" + completedOrderId);
        cursorManager.write(cursorPath + "/" + fileName, cursor);
    }
  • 相关阅读:
    hdoj 2586 How far away?(最近公共祖先)
    poj 1330 A-Nearest Common Ancestors
    心形图
    B1928 日期差值
    B1022 D进制的A+B
    B1009 说反话
    hihocoder 1498 签到
    51Nod 1082 与7无关的数
    51Nod 1015 水仙花数
    51Nod 1283 最小周长
  • 原文地址:https://www.cnblogs.com/ShanHeDiao/p/5889580.html
Copyright © 2011-2022 走看看