2011-05-02 3 views
1

기존 파일에 객체를 추가했지만 읽을 수는 없습니다. 첫 번째 객체를 읽을 수 있으며 이것은 내 코드입니다. 무엇이 문제입니까?객체를 기존 파일에 추가합니다.

try{ 

     FileOutputStream fos = openFileOutput("f.txt",MODE_PRIVATE | MODE_APPEND); 

     ObjectOutputStream oos = new ObjectOutputStream(fos); 
     String a=new String ("Hello object1 "); 
     String b=new String("Hello object2 "); 
     String c=new String("Hello object3 "); 

     oos.writeObject(a); 
     oos.writeObject(b); 
     oos.writeObject(c); 
     oos.close(); 

     // Reading it back.. 

     FileInputStream fis = openFileInput("f.txt"); 

     ObjectInputStream ois = new ObjectInputStream(fis); 

     //ois=new ObjectInputStream(fis); 
     // r=(String)ois.readObject(); 
       String r; 
     while ((r= (String)ois.readObject()) != null) { 
      Log.i("while Read r",r); 

      Toast.makeText(getApplicationContext(),r, Toast.LENGTH_SHORT).show(); 
     } 

     ois.close(); 

     }catch (Exception e){ 
      Log.i("Exception",e.getMessage()); 
     } 

나는 당신이 나를 도울 수 있기를 바랍니다 !! 감사.

+0

이 오류를 받고, 또는이다 그것은 단지 하나 개 이상의 객체를 읽고 있지? –

+0

죄송합니다. 나는 위의 세 가지 객체를 읽을 수 있으며 오류가 발생합니다. 또한 네 번째 객체를 추가하면 읽을 수 없습니다. – m7m

+0

어떤 오류가 발생합니까? –

답변

1

코드는 올바른 그냥 "동안"의 일부 수정, 아래 체크 보인다

try{ 

    FileOutputStream fos = openFileOutput("f.txt",MODE_PRIVATE | MODE_APPEND); 

    ObjectOutputStream oos = new ObjectOutputStream(fos); 
    String a=new String ("Hello object1 "); 
    String b=new String("Hello object2 "); 
    String c=new String("Hello object3 "); 

    oos.writeObject(a); 
    oos.writeObject(b); 
    oos.writeObject(c); 
    oos.close(); 

    // Reading it back.. 

    FileInputStream fis = openFileInput("f.txt"); 

    ObjectInputStream ois = new ObjectInputStream(fis); 

    //ois=new ObjectInputStream(fis); 
    // r=(String)ois.readObject(); 
      String r; 
    while (fis.available() > 0) { 
     r= (String)ois.readObject(); 
     Log.i("while Read r",r); 

     Toast.makeText(getApplicationContext(),r, Toast.LENGTH_SHORT).show(); 
    } 

    ois.close(); 

    }catch (Exception e){ 
     Log.i("Exception",e.getMessage()); 
    } 
관련 문제