/**
* Copyright (c) 2012-2013, Michael Yang 杨福海 (www.yangfuhai.com).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.hrlly.tao2shou.utils;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.RandomAccessFile;
import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import org.json.JSONArray;
import org.json.JSONObject;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.PixelFormat;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import cn.hrlly.tao2shou.domain.CommodityList;
/**
* 缓存工具类
* User: gengliang
* Date: 2016-01-18
* Time: 15:39
*/
public class ACache {
public static final int TIME_HOUR = 60 * 60;
public static final int TIME_DAY = TIME_HOUR * 24;
private static final int MAX_SIZE = 1000 * 1000 * 50; // 50 mb
private static final int MAX_COUNT = Integer.MAX_VALUE; // 不限制存放数据的数量
private static Map<String, ACache> mInstanceMap = new HashMap<String, ACache>();
private ACacheManager mCache;
public static ACache get(Context ctx) {
return get(ctx, "ACache");
}
public static ACache get(Context ctx, String cacheName) {
File f = new File(ctx.getCacheDir(), cacheName);
return get(f, MAX_SIZE, MAX_COUNT);
}
public static ACache get(File cacheDir) {
return get(cacheDir, MAX_SIZE, MAX_COUNT);
}
public static ACache get(Context ctx, long max_zise, int max_count) {
File f = new File(ctx.getCacheDir(), "ACache");
return get(f, max_zise, max_count);
}
public static ACache get(File cacheDir, long max_zise, int max_count) {
ACache manager = mInstanceMap.get(cacheDir.getAbsoluteFile() + myPid());
if (manager == null) {
manager = new ACache(cacheDir, max_zise, max_count);
mInstanceMap.put(cacheDir.getAbsolutePath() + myPid(), manager);
}
return manager;
}
private static String myPid() {
return "_" + android.os.Process.myPid();
}
private ACache(File cacheDir, long max_size, int max_count) {
if (!cacheDir.exists() && !cacheDir.mkdirs()) {
throw new RuntimeException("can't make dirs in "
+ cacheDir.getAbsolutePath());
}
mCache = new ACacheManager(cacheDir, max_size, max_count);
}
// =======================================
// ============ String数据 读写 ==============
// =======================================
/**
* 保存 String数据 到 缓存中
*
* @param key
* 保存的key
* @param value
* 保存的String数据
*/
public void put(String key, String value) {
File file = mCache.newFile(key);
BufferedWriter out = null;
try {
out = new BufferedWriter(new FileWriter(file), 1024);
out.write(value);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
mCache.put(file);
}
}
/**
* 保存 String数据 到 缓存中
*
* @param key
* 保存的key
* @param value
* 保存的String数据
* @param saveTime
* 保存的时间,单位:秒
*/
public void put(String key, String value, int saveTime) {
put(key, Utils.newStringWithDateInfo(saveTime, value));
}
/**
* 读取 String数据
*
* @param key
* @return String 数据
*/
public String getAsString(String key) {
File file = mCache.get(key);
if (!file.exists())
return null;
boolean removeFile = false;
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(file));
String readString = "";
String currentLine;
while ((currentLine = in.readLine()) != null) {
readString += currentLine;
}
if (!Utils.isDue(readString)) {
return Utils.clearDateInfo(readString);
} else {
removeFile = true;
return null;
}
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (removeFile)
remove(key);
}
}
// =======================================
// ============= JSONObject 数据 读写 ==============
// =======================================
/**
* 保存 JSONObject数据 到 缓存中
*
* @param key
* 保存的key
* @param value
* 保存的JSON数据
*/
public void put(String key, JSONObject value) {
put(key, value.toString());
}
/**
* 保存 JSONObject数据 到 缓存中
*
* @param key
* 保存的key
* @param value
* 保存的JSONObject数据
* @param saveTime
* 保存的时间,单位:秒
*/
public void put(String key, JSONObject value, int saveTime) {
put(key, value.toString(), saveTime);
}
/**
* 读取JSONObject数据
*
* @param key
* @return JSONObject数据
*/
public JSONObject getAsJSONObject(String key) {
String JSONString = getAsString(key);
try {
JSONObject obj = new JSONObject(JSONString);
return obj;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
// =======================================
// ============ JSONArray 数据 读写 =============
// =======================================
/**
* 保存 JSONArray数据 到 缓存中
*
* @param key
* 保存的key
* @param value
* 保存的JSONArray数据
*/
public void put(String key, JSONArray value) {
put(key, value.toString());
}
/**
* 保存 JSONArray数据 到 缓存中
*
* @param key
* 保存的key
* @param value
* 保存的JSONArray数据
* @param saveTime
* 保存的时间,单位:秒
*/
public void put(String key, JSONArray value, int saveTime) {
put(key, value.toString(), saveTime);
}
/**
* 读取JSONArray数据
*
* @param key
* @return JSONArray数据
*/
public JSONArray getAsJSONArray(String key) {
String JSONString = getAsString(key);
try {
JSONArray obj = new JSONArray(JSONString);
return obj;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
// =======================================
// ============== byte 数据 读写 =============
// =======================================
/**
* 保存 byte数据 到 缓存中
*
* @param key
* 保存的key
* @param value
* 保存的数据
*/
public void put(String key, byte[] value) {
File file = mCache.newFile(key);
FileOutputStream out = null;
try {
out = new FileOutputStream(file);
out.write(value);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
mCache.put(file);
}
}
/**
* 保存 byte数据 到 缓存中
*
* @param key
* 保存的key
没有合适的资源?快使用搜索试试~ 我知道了~
基于Android的校园二手交易系统源码校园二手交易APP源码Android本科毕业设计
共346个文件
java:257个
xml:59个
png:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 140 浏览量
2023-01-11
15:04:02
上传
评论 7
收藏 792KB ZIP 举报
温馨提示
基于Android的校园二手交易系统源码校园二手交易APP源码Android本科毕业设计
资源推荐
资源详情
资源评论
收起资源包目录
基于Android的校园二手交易系统源码校园二手交易APP源码Android本科毕业设计 (346个子文件)
gradlew.bat 2KB
.gitignore 7B
build.gradle 1KB
build.gradle 564B
settings.gradle 15B
gradlew 5KB
AMap_Location_v2.3.0_20160112.jar 295KB
universal-image-loader-1.9.5.jar 158KB
gradle-wrapper.jar 52KB
ACache.java 21KB
CacheUtil.java 7KB
HomePageFragment.java 6KB
Order.java 6KB
Commodity.java 6KB
ImageUtil.java 6KB
Config.java 6KB
MyApplication.java 5KB
Application.java 5KB
RefreshLayout.java 5KB
RequireFragment.java 5KB
MyFragment.java 5KB
DatabaseUtil.java 5KB
CommodityDetailsActivity.java 5KB
MainActivity.java 5KB
PublishFragment.java 4KB
CollectUserInfoActivity.java 4KB
OrderDetailsActivity.java 4KB
ApplicationDetailsActivity.java 4KB
SellerApplicationActivity.java 4KB
SellerApplicationAdapter.java 4KB
FindPasswordActivity.java 4KB
SubmitApplicationActivity.java 4KB
LoginActivity.java 4KB
User.java 4KB
SellerUnfinishOrderFragment.java 3KB
BuyerUnfinishOrderFragment.java 3KB
SellerCompleteOrderFragment.java 3KB
SellerUnfinishOrderAdapter.java 3KB
RegisterPresenterImpl.java 3KB
BuyerUnfinishOrderAdapter.java 3KB
Require.java 3KB
RegisterActivity.java 3KB
SellerCompleteOrderAdapter.java 3KB
RequireDetailsActivity.java 3KB
BuyerApplicationActivity.java 3KB
BuyerCompleteOrderFragment.java 3KB
RegisterBizImpl.java 3KB
CommoditiesAdapter.java 3KB
MyCommodityActivity.java 3KB
MyRequireActivity.java 3KB
CommodityList.java 3KB
OrderListPresenterImpl.java 3KB
ShowSearchCommoditiesPresenterImpl.java 3KB
EditCommodityBizImpl.java 2KB
UnCeHandler.java 2KB
EditCommodityPresenterImpl.java 2KB
SubmitApplicationBizImpl.java 2KB
SellerOrderActivity.java 2KB
RequiresAdapter.java 2KB
OrderListBizImpl.java 2KB
HistoryAdapter.java 2KB
BuyerApplicationAdapter.java 2KB
ApplicationListPresenterImpl.java 2KB
HistoryActivity.java 2KB
BuyerCompleteOrderAdapter.java 2KB
Commodities.java 2KB
PublishCommodityPresenterImpl.java 2KB
BuyerOrderActivity.java 2KB
FindPasswordPresenterImpl.java 2KB
GpsUtil.java 2KB
MyCommoditiesAdapter.java 2KB
CommoditiesListPresenterImpl.java 2KB
SubmitApplicationPresenterImpl.java 2KB
Requires.java 2KB
FindPasswordBizImpl.java 2KB
ShowSearchCommoditiesBizImpl.java 2KB
PublishCommodityBizImpl.java 2KB
PublishCommoditiesListPresenterImpl.java 2KB
OperateOrderPresenterImpl.java 2KB
MyRequiresAdapter.java 2KB
ClassifyCommoditiesPresenterImpl.java 2KB
ApplicationListBizImpl.java 2KB
CommoditiesListBizImpl.java 2KB
EditRequirePresenterImpl.java 2KB
SplashActivity.java 2KB
CommodityDetailsBizImpl.java 2KB
RequireListPresenterImpl.java 2KB
OperateOrderBizImpl.java 2KB
ConfirmApplicationBizImpl.java 2KB
CancelApplicationBizImpl.java 2KB
GetCodeCallback.java 2KB
DatabaseHelper.java 2KB
CommodityDetailsPresenterImpl.java 2KB
PublishRequirePresenterImpl.java 2KB
AlterUserInfoPresenterImpl.java 2KB
ConfirmApplicationPresenterImpl.java 2KB
Orders.java 2KB
CancelApplicationPresenterImpl.java 2KB
RequireList.java 2KB
EditRequireBizImpl.java 2KB
共 346 条
- 1
- 2
- 3
- 4
资源评论
- 执著、2023-04-23这个咋运行呜呜呜
- weixin_494024512023-05-18资源和描述一致,质量不错,解决了我的问题,感谢资源主。
Python代码大全
- 粉丝: 2726
- 资源: 689
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功