Android文件缓存 Json文件的读写
来源:互联网 发布:jsp页面嵌套java代码 编辑:程序博客网 时间:2024/04/29 11:44
在android开发过程中会遇到文件存储这一块的知识!合理的设置缓存不仅可以节省用户流量,也可以在一定程度上优化app的性能、减少服务端的访问压力!
通过对代码的封装,以达到对服务端返回数据的存储来实现本地缓存效果。
具体代码如下:
<span style="color:#333300;">package com.jingchen.tbviewer.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.StreamCorruptedException;import java.nio.channels.FileChannel;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.os.Environment;public class CacheUtils {private static File CacheRoot;/** * 存储Json文件 * * @param context * @param json * json字符串 * @param fileName * 存储的文件名 * @param append * true 增加到文件末,false则覆盖掉原来的文件 */public static void writeJson(Context c, String json, String fileName,boolean append) {CacheRoot = Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED ? c.getExternalCacheDir() : c.getCacheDir();FileOutputStream fos = null;ObjectOutputStream os = null;try {File ff = new File(CacheRoot, fileName);boolean boo = ff.exists();fos = new FileOutputStream(ff, append);os = new ObjectOutputStream(fos);if (append && boo) {FileChannel fc = fos.getChannel();fc.truncate(fc.position() - 4);}os.writeObject(json);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (fos != null) {try {fos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (os != null) {try {os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}/** * 读取json数据 * * @param c * @param fileName * @return 返回值为list */@SuppressWarnings("resource")public static List<String> readJson(Context c, String fileName) {CacheRoot = Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED ? c.getExternalCacheDir() : c.getCacheDir();FileInputStream fis = null;ObjectInputStream ois = null;List<String> result = new ArrayList<String>();File des = new File(CacheRoot, fileName);try {fis = new FileInputStream(des);ois = new ObjectInputStream(fis);while (fis.available() > 0)result.add((String) ois.readObject());} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (StreamCorruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (fis != null) {try {fis.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (ois != null) {try {ois.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return result;}}</span><strong style="color: rgb(255, 0, 0);"></strong>
0 0
- Android文件缓存 Json文件的读写
- 关于Json文件的读写
- Android文件的读写
- Android文件的读写
- Android文件的读写
- Android的文件读写
- Android文件的读写
- Android 文件的读写
- Android文件的读写
- 文件读写操作的缓存机制
- 文件读写操作的缓存机制
- 文件读写操作的缓存机制
- 文件读写操作的缓存机制
- 文件读写操作的缓存机制
- 文件读写操作的缓存机制
- php读写json文件
- nodejs读写json文件
- json-c 读写文件
- java解析xml字符串(用dom4j)
- Android-->.9文件制作,简单粗暴(菜鸟都能秒懂)
- myeclipse10新建maven工程
- (转)理解MySQL——索引与优化
- java导出excel方法 小记
- Android文件缓存 Json文件的读写
- mysql远程登录权限不足问题解决
- 【LeetCode】Binary Tree Level Order Traversal(层序遍历)
- QTP中Test参数化和Action参数化区别
- Redis笔记
- MySQL学习系列5:函数
- EasyUI常用控件的禁用方法
- jq游戏----推箱子
- LeetCode Remove Duplicates from Sorted Array