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);
    }
  • 相关阅读:
    Linux.NET学习手记(1)
    初识Entity Framework CodeFirst(3)
    初识Entity Framework CodeFirst(2)
    Linux.NET学习手记(3)
    Linux.NET学习手记(2)
    第四次博客作业结对项目
    [转]制作BlogWriter 博客客户端
    【整理】C# WinFrom 中如何txt内容与dataGridView互动
    将字符串给datetimepicker赋值
    (转)koograExcel文件读取利器的使用
  • 原文地址:https://www.cnblogs.com/ShanHeDiao/p/5889580.html
Copyright © 2011-2022 走看看