是和中文有关,好像现在并不推荐使用datainputstream和dataoutputstream,这两个是有多语言问题的,我刚看过一篇文章,但想不起来用什么了。

解决方案 »

  1.   

    应该是与系统环境有点关系, 换个系统试一下. 
    另外, datainputstream 是不推荐使用, 因为在传输字节流的时候可能会丢失字节
    一般使用 BufferedReader 替代
      

  2.   

    跟什么系统无关,是你的写的有问题
    java本身是支持unicode的,不会有中文的问题
    DataInputStream,DataOutputStream好用啊
    谁说不推荐???不过他没有缓冲的功能而已。
    我把try里的改了一下
    while(true)
    {
    price = in.readDouble();
    if (price==-1)
       break;
    in.readChar();      
    unit = in.readInt();
    in.readChar();      
    String aa;
    aa = in.readLine();
    if(aa != null)
    {
        System.out.println("You've ordered " + unit + " units of " 
                                    + desc+ " at $" + price);
        total = total + unit * price;
    }
    }
      

  3.   

    Data Io Stream 是Byte类型的Stream,因而会有中文出现乱码的问题。如果你用 Charracter Stream Classes,就没问题了。
    如:
    InputStreamWriter,FileReader,FileWriter,StringWriter等等。