本帖最后由 cocooooa 于 2012-11-08 19:04:51 编辑

解决方案 »

  1.   

    每次一个一个的读,读一个写一个,一直读下去就可以读一串了。
    使用byte[]是一次读取一个数组长度的内容,减少读取的次数
      

  2.   

    度一个就写一个的哈,总是连了起来,一般都是 一字一字地读,所以就是 后面你说的read()...啦,你想想,程序也不知道你的信息有多少,当然是一字一字地读啦,
      

  3.   

    http://www.ticmy.com/?p=132
      

  4.   

    你先理解下这个返回值的意义。在read(byte[])时 这个返回值是读了多少个字节。而read()是读出的东西
      

  5.   

    这个是效率的问题,System.in是小规模输入,大规模的要用BufferedInputStream那些,写成byte[]也是为了缓冲提高效率
      

  6.   

    首先这是个循环,结束条件是读到末尾返回-1的时候,比如楼主输入abc
    看看执行流程吧:
    由于是一个一个的读,所以先打印a,然后继续循环,可以发现循环条件成立,所以有输出依次类推输出了abc,从表面上看像是依次输出abc的,其实不然楼主改成System.out.println(a)看看执行结果就明白了
    输出时
    a
    b
    c
      

  7.   

    首先这是个循环,结束条件是读到末尾返回-1的时候,比如楼主输入abc
    看看执行流程吧:
    由于是一个一个的读,所以先打印a,然后继续read()此时读的就是b,循环成立,,所以又输出b,依次类推输出了c,从表面上看像是一下全部输出abc的,其实不然楼主改成System.out.println(a)看看执行结果就明白了
    输出为
    a
    b
    c