原ASimpleCache GitHub地址:https://github.com/yangfuhai/ASimpleCache
1、使用时需要注意:readLine会清除换行符,且在大量换行时影响效率
/**
* 读取 String数据
*
* @param key
* @return String 数据
*/
public String getAsString(String key) {
//中文可能会乱码
File file = mCache.get(key);
if (!file.exists())
return null;
boolean removeFile = false;
BufferedInputStream bis = null;
try {
FileInputStream fis = null;
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
String content = "";
//自己定义一个缓冲区
byte[] buffer = new byte[1024 * 8];
int flag = 0;
while ((flag = bis.read(buffer)) != -1) {
content += new String(buffer, 0, flag);
}
if (!Utils.isDue(content)) {
return Utils.clearDateInfo(content);
} else {
removeFile = true;
return null;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (removeFile) {
remove(key);
}
try {
if (bis != null) {
bis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
// 大量换行数据会很耗时,且换行符会丢失
// 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);
// }
}