解决方案 »

  1.   

    BufferedInputStream bis=new BufferedInputStream(System.in); 
    int str;    
    while((str=bis.read())!=-1)    
    System.out.print((char)str); 
    你那样 是 读两个写一个 好不 。
    要读一个写一个。
      

  2.   

            while((str=bis.read())!=-1)
                System.out.print((char)str);
      

  3.   

    是因为int转化为char丢失2个字节码?
      

  4.   

    str=bis.read() 读取了一个字节,System.out.println((char)bis.read())中读取的是第二个字节。故读取了两个字节,输出一个字节。
      

  5.   

    怎么就读两个写一个了?read是读一个字节啊!
      

  6.   


    read()方法是读取缓冲区内容同时指针下移。举个例子,就是比如:
    int[] buffer = {1,2,3,4,5,6};
    假设现在读指针下标index是1,指向2这个值。如果read()一下,读指针后移,即index是2,返回结果3。你的代码中,每执行一次read()就会后移一位。执行两次当然少一半。while((str=bis.read())!=-1)
            System.out.print((char)bis.read());将你的print()参数改成(char)str 就可以了
      

  7.   


    read()方法是读取缓冲区内容同时指针下移。举个例子,就是比如:
    int[] buffer = {1,2,3,4,5,6};
    假设现在读指针下标index是1,指向2这个值。如果read()一下,读指针后移,即index是2,返回结果3。你的代码中,每执行一次read()就会后移一位。执行两次当然少一半。while((str=bis.read())!=-1)
            System.out.print((char)bis.read());将你的print()参数改成(char)str 就可以了标红的地方有误,不能说是缓存,而是流链路(chain),read()方法从流中读取后,就会有后续的字节抵达流入口。因java IO是阻塞式的。
      

  8.   

    package day3;import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader; public class SystemIn {
        public static void main(String[] args) throws IOException{
           
            /**BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
            System.out.println(in.readLine());*/
            
            BufferedInputStream bis=new BufferedInputStream(System.in);
            
            int str;
            
            //for(int i=0;i<bis.available();i++)
            
            
            
            
            for(;;)
             {
             int c = bis.read();
             if(c != -1)
             {
             System.out.print(c);
             }
             else
             {
             break;
             }
            
             }
            
        }
    }这个代码就解决了你的问题了。