RandomAccessFile in = new RandomAccessFile("employee.dat", "r");   
      int i = 0;
      boolean more = true;
      while (more && i < size)
      {  
         char ch = in.readChar();
         i++;
         if (ch == 0) more = false; //什么情况下in.readChar()返回0,我都没看出来
         else b.append(ch);
      }//下面是readChar源代码:
 public final char readChar() throws IOException {
int ch1 = this.read();
int ch2 = this.read();
if ((ch1 | ch2) < 0)
    throw new EOFException();
return (char)((ch1 << 8) + (ch2 << 0));
    }

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【fuyou001】截止到2008-06-26 19:45:57的历史汇总数据(不包括此帖):
    发帖数:152                发帖分:4860               
    结贴数:151                结贴分:4840               
    未结数:1                  未结分:20                 
    结贴率:99.34 %            结分率:99.59 %            
    值得尊敬
      

  2.   

    up up   up up 
      

  3.   

    可能是ch1和ch2都为0的情况下吧
      

  4.   

    假设都为0,但0也是正常的,为什么要退出while语句?