例如向文件a写入若干个字符串(数量未知)
    String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:\\a"));
    for (int i = 0; i < count; i++) {
        oos.writeObject(s + i);
    }
    oos.close();然后读取,下面程序只知道c:\\a中存储的是一些字符串,但是不知道上面写入了多少个字符串
  ObjectInputStream ois = new ObjectInputStream(new FileInputStream("c:\\a"));
    
  String s = null;    while(这里用什么条件判断有没有到达流的末尾){
      s= (String)ois.readObject());
      System.out.println(s)
  }
如ois.readObject()读取到最后的记录后再次readObject就会出现java.io.EOFException异常,难道要我去catch到异常,然后跳出循环吗?
如果能像读取ResultSet那般while(rs.next())
        

解决方案 »

  1.   

    把你的count也读进去,然后由它来控制
      

  2.   

    count要写在第一个位置才行啊,但是一开始count也是不知道的,写数据部分只是一个参考代码,具体write多少个进去是未知的
      

  3.   

    你可以for (int i = 0; i < count; i++) {
         ArryaList.add(s+i)//这里的ARRAYLIST自己先在开都定以一下,
            oos.writeObject(ArrayList);
        }
    这样读的时候就好通过ARRAYLIST来读了
      

  4.   

    to楼上:我现在实际应用中就是这么做的,但是这里的for (int i = 0; i < count; i++) {
         oos.writeObject(s + i);
    }只是一个示例代码,实际在组装那个ArrayList当中可以发生异常,如果一出现异常便什么也没有写入到文件中