您的位置:首页 > 移动开发 > Android开发

Android 将List<Bean>数据写入文件,从文件中读取;以及多个 Activity 的退出方法

2016-11-15 08:57 871 查看
数据集合写入文件的方法:

/**
* 将集合写入sd卡
*
* @param fileName 文件名
* @param list     集合
* @return true 保存成功
*/
public boolean writeListIntoSDcard(String fileName, List<T> list) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File sdCardDir = Environment.getExternalStorageDirectory();//获取sd卡目录
File sdFile = new File(sdCardDir, fileName);
try {
FileOutputStream fos = new FileOutputStream(sdFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(list);//写入
fos.close();
oos.close();
return true;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
} else {
return false;
}
}

从文件当中读入数据集合的读取方法:

/**
* 读取sd卡对象
*
* @param fileName 文件名
* @return
*/
@SuppressWarnings("unchecked")
public List<T> readListFromSdCard(String fileName) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {  //检测sd卡是否存在
List<T> list;
File sdCardDir = Environment.getExternalStorageDirectory();
File sdFile = new File(sdCardDir, fileName);
try {
FileInputStream fis = new FileInputStream(sdFile);
ObjectInputStream ois = new ObjectInputStream(fis);
list = (List<T>) ois.readObject();
fis.close();
ois.close();
return list;
} catch (StreamCorruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
} else {
return null;
}

其中数据集合文件是保存在 SD 卡当中,传入保存的文件名(注意传入的是文件名而不是文件的全路径)

最后在添加 退出多个 Activity 方法:

/**
* 创建一个 Activity 的 List 集合
*/
private static List<Activity> mActivityList;

/**
* 将所有需要回退的 Activity 加入到集合当中
* @param activity
*/
public static void addActivity2List(Activity activity) {
if (null == mActivityList)
mActivityList = new ArrayList<Activity>();

if (null != activity)
mActivityList.add(activity);
}

/**
* 遍历集合当中所有的 Activity ,并且将其全部的 finish
* 注意这里只能从后面开始遍历,来 finish Activity;因为 List 集合数据默认是添加到集合的后面,如果从 0 开始 finish,会看不到响应的效果
*/
public static void finishActivityFromList() {
if (null != mActivityList)
for (int i = mActivityList.size() - 1 ; i >= 0; i--) {
if (null != mActivityList.get(i)) {
mActivityList.get(i).finish();
}
}
mActivityList.clear();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android bean 文件 集合