java 写文件缓存,java泛型实现文件缓存
package joyport.hbase;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
/**
* 文件缓存读写
*
* @author xiepeng@joyport.com
*/
public class UtilFileCache {
private static String dir;
private HashMap cache = new HashMap();
/**
* 不带最后的反斜杠
*
* @param dir
* String
* @throws Exception
*/
public UtilFileCache(String dir) throws Exception {
UtilFileCache.dir = dir;
// 检查并创建缓存目录
File file = new File(UtilFileCache.dir);
if (!file.exists()) {
file.mkdir();
}
}
/**
* 有内存缓存层的反持久化
*
* @param key
* String
* @return Object
* @throws Exception
*/
@SuppressWarnings("unchecked")
public T get(String key) throws Exception {
Object list = this.cache.get(key);
// 检查有无文件缓存
if (null == list) {
list = this.readFile(key);
this.cache.put(key, list);
}
return (T) list;
}
/**
* 有内存缓存层的持久化
*
* @param key
* String
* @param data
* Object
* @throws Exception
*/
public void put(String key, T data) throws Exception {
this.cache.put(key, data);
this.saveFile(key, data);
}
/**
* 反持久化
*
* @param key
* String
* @return Object
* @throws Exception
*/
@SuppressWarnings("unchecked")
private T readFile(String key) throws Exception {
File file = new File(dir + "/" + key);
Object list = null;
if (file.exists()) {
if (file.isFile()) {
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream(file));
list = (Object) ois.readObject();
ois.close();
}
}
return (T) list;
}
/**
* 文件持久化
*
* @param key
* String
* @param data
* Object
* @throws Exception
*/
private void saveFile(String key, T data) throws Exception {
File file = new File(dir + "/" + key);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
file));
oos.writeObject(data);
oos.flush();
oos.close();
}
}
java 写文件缓存,java泛型实现文件缓存相关推荐
- java写枪战游戏,Java版星球大战游戏(横向射击)
Java版星球大战游戏(横向射击) 准备逐步整理一下手中的第三方Java游戏代码,将能用的部分融入到LGame里去,没有能用部分的就直接删掉. 但无论程式难易如何,也是原作者一番心血,不应将它们弃如敝 ...
- 用java写猜拳游戏,Java写人机猜拳游戏(可扩展其他游戏或其他参与者)
初学Java,写一个控制台输入输出的小游戏,模拟人机猜拳.为了扩展性稍微强一些,这个小游戏代码有些复杂,但确实可以扩展其他游戏或者其他参与者的. 代码还有一些小问题,后面贴出来... /******* ...
- 如何用JAVA写acm_用java来写ACM
前言 从去年10月份开始就一直都在九度oj平台写acm,到今天在九度oj的总排名已经到了第6名,收获很多特别是算法和数据结构方面的提高,这种提高直接反映在我找工作的顺利中 但是人总要学会拥抱变化,特别 ...
- JAVA写代码学费,java编程培训班学费是多少
JavaWeb 01HTML5入门 -HTML的作用 -全局标签 -绝对路径与相对路径 -常见标签 -字符集 -图片整合 -表单标签 -布局指定的网页 02CSS3入门 -css声明类型 -常见的各种 ...
- java写dnf_用java模拟dnf武器强化的过程
几点说明:需要用户输入武器初始等级以及是否需要进行强化. 整个强化过程都包含在一个while循环里,利用标记i来停止循环,i==1继续强化:i==0为停止强化. 关于概率的问题,运用到随机数,r为0~ ...
- 网盘文件管理系统——java实现
简介 用java写的网盘类型的文件管理系统后端部分.后端主要通过FilePath和FileName字段确定一个文件(夹),一种模拟文件系统的方式显示. ApiFox接口文档 注:分片上传功能还未上线. ...
- android java写文件_Android中文件的读写(一)----流操作
因为自己的Java基本功不扎实,所以这篇文章主要介绍Java中的流操作,让自己再学习一下. Java IO Java IO中用于读写文件的四个抽象类:Reader,Writer,InputStream ...
- android java 写文件操作_Android编程之文件的读写实例详解
本文实例分析了Android编程之文件的读写方法.分享给大家供大家参考,具体如下: Android的文件读写与JavaSE的文件读写相同,都是使用IO流.而且Android使用的正是JavaSE的IO ...
- java 写文件 0x0d_Java的文件读写操作 转
目录: file内存----输入流----程序----输出流----file内存 java中多种方式读文件 判断文件是否存在不存在创建文件 判断文件夹是否存在不存在创建文件夹 java 写文件的三种方 ...
最新文章
- 三招教你如何判断ERP软件是否适用
- 电子科技大学计算机网络实验,计算机网络实验电子科技大学.doc
- oracle 值集附加列,EBS值集知识小结
- 什么是Spring 框架?Spring 框架有哪些主要模块?
- matlab如何将相近的数据,matlab新手,求帮助!主要是如何将数据和公式导入
- 工作180:前端是业务需求理解
- gitlab 删除分支_如何删除gitlab上默认受保护的master主分支
- ai怎么渐变颜色_你根本想不到AI的混合工具有多神奇!
- 震后十年,他重走那条生死送货线
- div模拟textarea在ios下不兼容的问题解决
- OSPF邻接关系建立过程
- 跨境电商热之下推ShopExpress,微盟靠什么出海寻新增量?
- 大学生创新项目——机房监控系统设计概述
- 算法分析与设计实验报告——0-1背包问题的动态规划算法实现
- 2020国内学者SCIENCE发文盘点,生物类 37 篇 (新冠相关 9 篇)
- 桌面图标小箭头去除方法
- 服务器UDIMM, LRDIMM,RDIMM三种内存的区别
- android4.4 音量控制,android4.4调整音量调节速度
- 360手机刷机:360N7pro刷机
- java string 去掉某个字符_JAVA String 如何去掉指定字符
热门文章
- Python序列类型常用函数练习:enumerate() reversed() sorted() zip()
- opencv感兴趣通道COI的使用
- php重复点击按钮无效,完美解决UIButton按钮重复点击、多次响应的问题
- 华为鸿蒙osbeta发布会,华为鸿蒙 OS Beta 3
- python 最快 因式分解_Python实现的对一个数进行因式分解操作示例
- Linux如何避免每次开启 CentOS 时,都要手动开启 sshd 服务,防止连接不上Xshell
- matlab多变量频域设计工具箱,10.4.3用MATLAB实现连续系统的频域分析.ppt
- mysql集群fuzhi_MySQL集群 和MySQL主从复制的不同
- 微服务 松耦合_超值干货:微服务架构下如何解耦,对于已经紧耦合下如何重构?...
- 【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)