Java 将对象附加到android中的现有文件

Java 将对象附加到android中的现有文件,java,android,Java,Android,我已将一个对象附加到现有文件中,但我无法读取它,我可以读取第一个对象,这是我的代码 有什么问题吗 try{ FileOutputStream fos = openFileOutput("f.txt",MODE_PRIVATE | MODE_APPEND ); ObjectOutputStream oos = new ObjectOutputStream(fos); String a=new String ("Hello object1 ");

我已将一个对象附加到现有文件中,但我无法读取它,我可以读取第一个对象,这是我的代码 有什么问题吗

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

我希望你能帮助我!!谢谢。

代码似乎正确,只是在“While”中做了一些修改,请检查以下内容:

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

代码似乎正确,只是在“While”中进行了一些修改,请检查以下内容:

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

您是否收到错误,或者只是没有读取多个对象?对不起??我可以读取上面三个对象,但我收到一个错误,如果我添加第四个对象,我也无法读取它。您收到了什么错误?05-02 22:56:26.852:error/AndroidRuntime(4714):java.lang.RuntimeException:无法启动activity ComponentInfo{moh.com/moh.com.storge}:java.lang.NullPointerException:println需要一条消息05-02 22:56:26.852:ERROR/AndroidRuntime(4714):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)第一次运行时查看上面的代码,我可以读取保存的所有对象,然后程序崩溃,如果再次运行并保存新对象,则无法读取在第二次运行中保存的最后一个对象。如果我把你搞糊涂了,我很抱歉,你是收到了一个错误,还是只是没有读取多个对象?我很抱歉??我可以读取上面三个对象,但我收到一个错误,如果我添加第四个对象,我也无法读取它。您收到了什么错误?05-02 22:56:26.852:error/AndroidRuntime(4714):java.lang.RuntimeException:无法启动activity ComponentInfo{moh.com/moh.com.storge}:java.lang.NullPointerException:println需要一条消息05-02 22:56:26.852:ERROR/AndroidRuntime(4714):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)第一次运行时查看上面的代码,我可以读取保存的所有对象,然后程序崩溃,如果再次运行并保存新对象,则无法读取在第二次运行中保存的最后一个对象。对不起,我把你弄糊涂了