class InputStreamReaderPPPOE {
public static void main(String args[]){
try {
System.in.read();
int available =System.in.available();
System.out.println(available);
String s = null;
if(available>0){
byte b[] = new byte[10];
System.in.read(b);
 s =new String(b);
System.out.println(s);
}
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
输入123456789,一切都正常,只是在往b中赋值的时候是23456789,1没有了,输出也是23456789。小弟刚学JAVA,请教各位前辈了~~

解决方案 »

  1.   

    System.in.read();这句不是已经把1读了吗,后面就没1了
      

  2.   

    一般都会把System.in这个InputStream包装再用的,比如:
    try{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    String line=null;
    while((line=br.readLine())!=null&&line.length()!=0){
    System.out.println(line);
    }
    }catch(Exception e){
    e.printStackTrace();
    }
      

  3.   

    你改什么了?
    你用这个会没有1么?
    try{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    String line=null;
    while((line=br.readLine())!=null&&line.length()!=0){
    System.out.println(line);
    }
    }catch(Exception e){
    e.printStackTrace();
    }
      

  4.   

    从你写 的代码 来看,程序  的执行步骤是从上到下执行的,所以系统先要求你先输入因为你输入了123456789接着就是用对象system.out显示出来,然后判断:因为你输入了123456789,所以进入了if控制语句你输入的是23456789,然后系统对象system.out又输出这个字节组,还有你抛异常的时候最好抛哈ArrayIndexOutOfBoundsException,总的来说该程序从上到下执行了两次输入和输出,
      

  5.   

    System.in是一个InputStream,read()是InputStream的方法,作用是从输入流读取下一个数据字节,所以说第一次你调用read()的时候,1就已经被读走了,你下面再read当然就没1了撒
      

  6.   

    System.in是一个InputStream,read()是InputStream的方法,作用是从输入流读取下一个数据字节,所以说第一次你调用read()的时候,1就已经被读走了,你下面再read当然就没1了撒
    明白了,呵呵~~ 真是太感谢你的这段话了!  谢谢~~ 祝你好运朋友~~
      

  7.   

    package io;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class Test1 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    try{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    String line=null;
    while((line=br.readLine())!=null&&line.length()!=0){
    System.out.println(line);
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    }}
    这样不行么,你是要把输入的内容打印出来吗