Android 书写和阅读ArrayList<;文件>;进入安卓缓存

Android 书写和阅读ArrayList<;文件>;进入安卓缓存,android,file,caching,arraylist,android-file,Android,File,Caching,Arraylist,Android File,我有一个apk文件数组,我需要做的是将ArrayList的apk文件写入缓存,并将其作为同一个ArrayList重新读取。我知道如何插入单个文件并从缓存中再次检索。但是,尽管ArrayList反对这种关注,但我完全坚持使用解决方案和方法。请帮帮我。我使用下面的代码来读写缓存。我的代码中的任何修改或轻微更改都会对我更有帮助。提前谢谢 读取和写入单个文件的实际代码 //Write to cache dir FileWriter writer = null; try { writer = n

我有一个apk文件数组,我需要做的是将ArrayList的apk文件写入缓存,并将其作为同一个ArrayList重新读取。我知道如何插入单个文件并从缓存中再次检索。但是,尽管ArrayList反对这种关注,但我完全坚持使用解决方案和方法。请帮帮我。我使用下面的代码来读写缓存。我的代码中的任何修改或轻微更改都会对我更有帮助。提前谢谢

读取和写入单个文件的实际代码

//Write to cache dir

FileWriter writer = null;
try {
    writer = new FileWriter(tmpFile);
    writer.write(text.toString());
    writer.close();

    // path to file
    // tmpFile.getPath() 

} catch (IOException e) {
    e.printStackTrace();
}

//Read to cache directory
String TMP_FILE_NAME = "base.apk";
File tmpFile;

File cacheDir = getBaseContext().getCacheDir();
tmpFile = new File(cacheDir.getPath() + "/" + TMP_FILE_NAME) ;

String line="";
StringBuilder text = new StringBuilder();

try {
    FileReader fReader = new FileReader(tmpFile);
    BufferedReader bReader = new BufferedReader(fReader);

    while( (line=bReader.readLine()) != null  ){
        text.append(line+"\n");
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
}catch(IOException e){
    e.printStackTrace();
}
根据我的插入要求修改了代码
ArrayList


在与政府进行了漫长的斗争之后,我找到了自己的问题答案

要编写
数组列表

我的活动中的最终代码

 createCachedFile (MainActivity.this,"apk",adapter.getAppList ());

 ArrayList<File> apkCacheList = (ArrayList<File>)readCachedFile  (MainActivity.this, "apk");
createCachedFile(MainActivity.this,“apk”,adapter.getAppList());
ArrayList apkCacheList=(ArrayList)readCachedFile(MainActivity.this,“apk”);
String line="";
        StringBuilder text = new StringBuilder();

        try {
            FileReader fReader = new FileReader(tempFile);
            BufferedReader bReader = new BufferedReader(fReader);

            while( (line=bReader.readLine()) != null  ){
                text.append(line+"\n");
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
public static void createCachedFile (Context context, String key, ArrayList<File> fileName) throws IOException {

        String tempFile = null;
        for (File file : fileName) {
            FileOutputStream fos = context.openFileOutput (key, Context.MODE_PRIVATE);
            ObjectOutputStream oos = new ObjectOutputStream (fos);
            oos.writeObject (fileName);
            oos.close ();
            fos.close ();

        }
    }
public static Object readCachedFile (Context context, String key) throws IOException, ClassNotFoundException {
        FileInputStream fis = context.openFileInput (key);
        ObjectInputStream ois = new ObjectInputStream (fis);
        Object object = ois.readObject ();
        return object;
    }
 createCachedFile (MainActivity.this,"apk",adapter.getAppList ());

 ArrayList<File> apkCacheList = (ArrayList<File>)readCachedFile  (MainActivity.this, "apk");