How to write an ArrayList to file and retrieve it?

前端 未结 2 1862
一整个雨季
一整个雨季 2020-12-10 17:07

now im trying to use this

FileOutputStream fos = getContext().openFileOutput(\"CalEvents\", Context.MODE_PRIVATE);
    ObjectOutputStream oos = new ObjectOut         


        
相关标签:
2条回答
  • 2020-12-10 17:32

    Is this what you want to do ?

    FileInputStream fis;
    try {
        fis = openFileInput("CalEvents");
        ObjectInputStream ois = new ObjectInputStream(fis);
        ArrayList<Object> returnlist = (ArrayList<Object>) ois.readObject();
        ois.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    

    EDIT: Can be simplified:

    FileInputStream fis;
    try {
        fis = openFileInput("CalEvents");
        ObjectInputStream ois = new ObjectInputStream(fis);
        ArrayList<Object> returnlist = (ArrayList<Object>) ois.readObject();
        ois.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    Assuming that you are in a class which extends Context (like Activity). If not, then you will have to call the openFileInput() method on an object which extends Context.

    0 讨论(0)
  • 2020-12-10 17:43

    Use this method to write your Arraylist in a file

    public static void write(Context context, Object nameOfClass) {
        File directory = new File(context.getFilesDir().getAbsolutePath()
                + File.separator + "serlization");
        if (!directory.exists()) {
            directory.mkdirs();
        }
    
        String filename = "MessgeScreenList.srl";
        ObjectOutput out = null;
    
        try {
            out = new ObjectOutputStream(new FileOutputStream(directory
                    + File.separator + filename));
            out.writeObject(nameOfClass);
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    Complete example here, with Read method

    0 讨论(0)
提交回复
热议问题