开发者

Not reading or writing to internal storage android

I'm trying to store a Map into android's internal storage.

My code:

    private void saveFavorite(){
    LinkedHashMap<String, LinkedList<MyCustomObject>> favorites = new LinkedHashMap<String, LinkedList<MyCustomObject>>();

    try{
        InputStream file = openFileInput(PATH);
        BufferedInputStre开发者_开发知识库am buffer = new BufferedInputStream( file );
        ObjectInput input = new ObjectInputStream ( buffer );
        try{
            Object o = input.readObject();
            if(o instanceof LinkedHashMap<?, ?>)
                favorites = (LinkedHashMap<String, LinkedList<MyCustomObject>>)o;
        }
        finally{
            input.close();
        }
    }
    catch(ClassNotFoundException ex){
    }
    catch(IOException ex){
    }

    String favoriteName = "asd";


    favorites.put(favoriteName, myobject);


    FileOutputStream fos;
    try {
        fos = openFileOutput(PATH, MODE_APPEND);
        BufferedOutputStream buffer = new BufferedOutputStream( fos );
        ObjectOutput output = new ObjectOutputStream( buffer );
        try{
            output.writeObject(favorites);
        }finally{
            output.close();
        }
    }catch(IOException ex){
    }
}

MyCustomObject implements Serializable

While debugging I don't see any problem. It seems it reads an empty map, then writes the map with a value but when I read it again, map is empty.

Help please.

UPDATE: I have found inside /data/data/my_project_package_structure/files/ a file called like my var PATH. It's growing in size each time I call my save method so I think it writes well but I don't know what I'm doing wrong.


try {
    **fos = openFileOutput(PATH, MODE_APPEND);**
    BufferedOutputStream buffer = new BufferedOutputStream( fos );

Should be

    **fos = openFileOutput(PATH, MODE_PRIVATE);**
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜