2013-11-20 2 views
1

Я получаю байт [] из своего внутреннего хранилища, и теперь я не знаю, как его преобразовать в мой ArrayList.Как преобразовать байт [] в ArrayList <CustomObjec>?

Я имею в виду этот пост. -->>THIS<<--

отрезала код:

   ArrayList<KFZInfo> toReturn = null; 
       FileInputStream fis; 
       try { 
        fis = openFileInput("kfzList"); 
        ObjectInputStream oi = new ObjectInputStream(fis); 
        toReturn = (ArrayList<KFZInfo>) oi.readObject(); 
        oi.close(); 
       } catch (FileNotFoundException e) { 
        System.out.println(e); 
       } catch (IOException e) { 
        System.out.println(e); 
       } catch (ClassNotFoundException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

В toReturn = (ArrayList<KFZInfo>) oi.readObject(); он бросает ошибку, которая говорит: java.lang.ClassCastException: byte[] cannot be cast to java.utio.ArrayList

И вот как я пишу это на внутренней памяти:

try { 
        FileOutputStream fos = openFileOutput("kfzList", Context.MODE_PRIVATE); 
        ObjectOutputStream oo = new ObjectOutputStream(fos); 
        oo.writeObject(listKfzInfo.toString().getBytes()); 
        oo.flush(); 
        oo.close(); 
        fos.close(); 

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

}

Как решить эту проблему?

+0

как ты это написал? – Blackbelt

+0

посмотреть отредактированный пост –

ответ

0

Изменить

oo.writeObject(listKfzInfo.toString().getBytes()); 

с

oo.writeObject(listKfzInfo); 

Я предполагаю, что listKfzInfo является ArrayList<KFZInfo> и KFZInfo implements Serializable и что все поля внутри KFZInfo реализует Serializable

+0

Теперь переменная 'toReturn' из arrayList имеет значение NULL. Любая идея, почему null? –

+0

Было ли это пустым, когда вы написали? – Blackbelt

+0

no Я добавил что-то в список. –

Смежные вопросы