CursorFileManager对cursor文件的读写
2024-08-29 07:49:06
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);
}
最新文章
- .Net语言 APP开发平台——Smobiler学习日志:快速实现应用中的图片、声音等文件上传功能
- Python安装pywinauto时遇到error: The read operation timed out解决方法
- Docker distrubution in django
- DLUTOJ 1209 字典序和r-子集
- python_递归
- Linux 配置网络
- 源码级分析Android系统启动流程
- ASP.NET入门(class0612)
- jQuery的选择器中的通配符[id^='code']或[name^='code']
- 在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤
- Java RMI(远程方法调用) 实例与分析 (转)
- Android L(5.0)源码之手势识别GestureDetector
- LODOP之票据连续套打笔记<;二>;
- 02-JAVA基础及面向对象(补充)
- Java-NIO(二):缓冲区(Buffer)的数据存取
- Django项目实践4 - Django站点管理(后台管理员)
- 搭建LNMP环境(CentOS 6)
- js 动画效果实现
- 破解Linux系统root用户密码
- Quartz Trigger Priority 触发器优先级