話不多說直接上工具類:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
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.util.LinkedHashMap;
import android.content.Context;
public class SaveTheDataUtil {
/**
* 讀取hashmap類型的資料
* @param activity
* @param fileName
* @return
*/
public static Object readData(Context activity, String fileName) {
try {
String path = activity.getCacheDir().getAbsolutePath() + fileName;
FileInputStream fis = new FileInputStream(path);
ObjectInputStream ois = new ObjectInputStream(fis);
Object list = ois.readObject();
ois.close();
fis.close();
return list;
} catch (Exception e) {
Functions.printStackTrace(e);
}
return null;
}
/**
* 儲存hashmap類型的資料
* @param activity
* @param fileName
* @param linkedHashMap
*/
public static void saveData(Context activity, String fileName,
LinkedHashMap<?, ?> linkedHashMap) {
FileOutputStream fs;
try {
String path = activity.getCacheDir().getAbsolutePath() + fileName;
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
fs = new FileOutputStream(path);
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(linkedHashMap);
os.close();
fs.close();
} catch (Exception e) {
Functions.printStackTrace(e);
}
}
/**
* 清空已有的檔案内容,以便下次重新寫入新的内容
* @param fileName
*/
public static void clearInfoForFile(String fileName) {
File file =new File(fileName);
try {
if(!file.exists()) {
file.createNewFile();
}
FileWriter fileWriter =new FileWriter(file);
fileWriter.write("");
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 在已有的檔案後面追加資訊
* @param fileName
* @param info
*/
public static void appendInfoToFile(String fileName, String info) {
File file =new File(fileName);
try {
if(!file.exists()){
file.createNewFile();
}
FileWriter fileWriter =new FileWriter(file, true);
info = info +System.getProperty("line.separator");
fileWriter.write(info);
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* readLine方法來逐行文本内容
* @param fileName
* @return
*/
public static String readInfoFromFile(String fileName) {
File file =new File(fileName);
if(!file.exists()) {
return null;
}
String resultStr = "";
try {
BufferedReader bufferedReader =new BufferedReader(new FileReader(file));
String str = null;
StringBuilder sb = new StringBuilder();
while(null !=(str=bufferedReader.readLine())) {
sb.append(str+System.getProperty("line.separator"));
}
bufferedReader.close();
resultStr = sb.toString();
}catch (IOException e) {
e.printStackTrace();
}
return resultStr;
}
}