将ArrayList <file>写入和读取到android缓存内存

时间:2015-05-30 02:55:19

标签: android file caching arraylist android-file

我有一个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<File>

String tempFile = null;
public void writeFile(ArrayList<File> files(){

 for(File file: files) {
            FileWriter writer = null;
            try {
                writer = new FileWriter(file);
                tempFile = file.getName().toString();
                writer.write(file.getName().toString());
                writer.close();

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

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

        }
}

这是我完全坚持读作ArrayList

的地方

我尝试的是

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();
        }

1 个答案:

答案 0 :(得分:2)

blog经过长时间的努力后,我找到了自己的问题答案。

撰写 signed char

ArrayList<File>

阅读 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 (); } }

ArrayList<File>

我的活动中的最终代码

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;
    }