谁救救我~~~~~~~~~~~~`啊?
PUSH and PUSH and PUSH.

解决方案 »

  1.   

    我用重新做了一边,
    System.out.println(i)的结果就是1。
    我真faint.
      

  2.   

    你为什么一定要用DIS和DIO呢?
    Data input streams and data output streams represent Unicode strings in a format that is a slight modification of UTF-8.
    直接用InputStream和OutputStream不更好?
    InputStream in = socket.getInputStream();
    OutputStream out = socket.getOutputStream();
    ...
      

  3.   

    只要read不返回-1,就说明还有数据没有读,
    你应该写一个循环:while( (i=in.read(bTest))!= -1)
    {
     .....
    }
      

  4.   

    in.read(byte[])返回的应该是所读入数组的大小啊,
    没必要用(-1)来判断吧?
      

  5.   

    我如果在client中输入是字节数组,则能返回正确的i值,也就是数组的大小。
    为什么输入字符串就不行呢,真不明白。
      

  6.   

    诶,老兄,你有没看我的回复啊?把DataInputStream和DataOutputStream分别换成InputStream和OutputStream就解决了……至于为什么会这样,我也还在研究……
      

  7.   

    当初我用java写一个文件分割程序,用DataInputStream和DataOutputStream,结果对于text文件正确了,对于word文档无论如何也不对。这里有位高人给予了详细的指点:
    http://www.csdn.net/expert/topic/85/85076.shtm
      

  8.   

    to ender
    看了啊,但是我还没没搞明白。
    to supersonics
    我用的真是stream啊,怎么不行呢?
      

  9.   

    继续请教:DataInputStream是怎么判断一个Stream的EOF呢?(原理上)
      

  10.   

    你用的DataInputStream也是处理UNICODE的……判断EOF也是读到-1啊,这一点所有的流应该都是一样的……
      

  11.   

    读到字节FF?
    你试试我的程序啊?看看是不是i=1?
    我如果一个个字节的读,通过catch EOFException 得到的i就是正常的。
    程序:
    ....
    int i=0;
    while(true) {
        bTest[i] = in.readByte();
        i++
    }
    ....catch(EOFException e) {
        try {
             System.out.println(i);
             FileOutputStream out = new FileOutputStream("e:\\test");
             outt.write(bTest);
        }
        catch (Ex.. e) {
        }
    }test文件的头几个为00 53 00 74 00 72.
      

  12.   

    你的程序我早试过了……结果也是1……经过研究,我发现只要用writeChars来写就会出错……而换成write(byte[] b)就没问题……很奇怪,我还在研究这个问题……你看看http://www.csdn.net/expert/topic/175/175368.shtm
      

  13.   

    Client:
      你用writeChar和writeChars写的是char类型,
    Server:
      接收时用read方法用byte类型接收就会出这样的问题。
    解决办法:
      1).Client端改用write方法,Server端不变
      2).Server端改用readLine方法或readChar方法
      

  14.   

    这是JDK的问题,更新到jdk1.3.1就好了