如果失败,就只有一条路——继续创业!没法回头!因为回头的代价太大了!
package com.william.job;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class CacheMgr {
private static Map cacheMap = new HashMap();
private static Map cacheConfMap = new HashMap();
private CacheMgr() {
}
private static CacheMgr cm = null;
public static CacheMgr getInstance() {
if (cm == null) {
cm = new CacheMgr();
Thread t = new ClearCache();
t.start();
}
return cm;
}
/**
* 增加缓存
*
* @param key
* @param value
* @param ccm
* 缓存对象
* @return
*/
public boolean addCache(Object key, Object value, CacheConfModel ccm) {
boolean flag = false;
cacheMap.put(key, value);
cacheConfMap.put(key, ccm);
System.out.println("now addcache==" + cacheMap.size());
return true;
}
/**
* 重载了增加缓存方法,
* @param key
* @param value
* @param beginTime
* @param durableTime -----分钟
* @param isForever
* @return
*/
public boolean addCache(Object key, Object value, long beginTime,int durableTime,boolean isForever) {
cacheMap.put(key, value);
CacheConfModel ccm = new CacheConfModel();
ccm.setBeginTime(beginTime);
ccm.setDurableTime(durableTime);
ccm.setForever(isForever);
cacheConfMap.put(key, ccm);
System.out.println("now addcache==" + cacheMap.size());
return true;
}
/**
* 删除缓存
*
* @param key
* @return
*/
public boolean removeCache(Object key) {
cacheMap.remove(key);
cacheConfMap.remove(key);
System.out.println("now removeCache==" + cacheMap.size());
return true;
}
/**
* 获取缓存
* @param key
* @return
*/
public Object getData(Object key)
{
return cacheMap.get(key);
}
/**
* 清除缓存的类
*
* @author wanglj 继承Thread线程类
*/
private static class ClearCache extends Thread {
public void run() {
while (true) {
Set tempSet = new HashSet();
Set set = cacheConfMap.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
Object key = it.next();
CacheConfModel ccm = (CacheConfModel) cacheConfMap.get(key);
// 比较是否需要清除
if (!ccm.isForever()) {
if ((new Date().getTime() - ccm.getBeginTime()) >= ccm
.getDurableTime() * 60 * 1000) {
// 可以清除,先记录下来
tempSet.add(key);
}
}
}
// 真正清除
Iterator tempIt = tempSet.iterator();
while (tempIt.hasNext()) {
Object key = tempIt.next();
cacheMap.remove(key);
cacheConfMap.remove(key);
}
System.out.println("now thread================>"
+ cacheMap.size());
// 休息
try {
Thread.sleep(60 * 1000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
package com.william.job;
public class CacheConfModel implements java.io.Serializable {
private long beginTime;
private boolean isForever = false;
private int durableTime;
public long getBeginTime() {
return beginTime;
}
public void setBeginTime(long beginTime) {
this.beginTime = beginTime;
}
public boolean isForever() {
return isForever;
}
public void setForever(boolean isForever) {
this.isForever = isForever;
}
public int getDurableTime() {
return durableTime;
}
public void setDurableTime(int durableTime) {
this.durableTime = durableTime;
}
}
经过这两天的摸索,终于完成了基本框架,在这里我只完成了。菜单的,文件目录浏览等功能,至于文件的内容阅读等没有设计,因为最近有个项目做,所以暂时没时间搞。所以先上传代码,让有兴趣的朋友,。呵呵。
在此先声明下:
此程序是纯属个人爱好而编写的,无任何商业行为。
里面用的的资源基本从网络搜集,如有侵犯商业公司的利益请email给我(rrq12345@163.com)
一些代码也是从技术论坛搜集,如有需要请跟我联系email同上
本程序未经过本人允许不能用于商业目的。纯属学习之用,j2me爱好者大家可以交流交流。
贴图
如果不能下载,同通知我。谢谢
你的附件链接打不开,如果还上传不上,请把附件发给我,我帮你上传。
email:webmaster@iteye.com
ok
你的浏览器是什么?我们会查一下问题
另外JAVA版增加了J2ME的系统标签,以后发J2ME文章可以用这个标签了
我的是IE6sp1的
系统是win2000sp4,
我IE是重新安装过的。系统安装的是IE5
不知道为什么每次读取文件路径的时候,系统总是在原来的路径加上相对的文件路径,所以导致了。当次的文件路径重复了。