请看以下程序:import java.io.*;
public class Junk
{
public static void main (String args[ ]) throws IOException
{
byte b [ ] = new byte [10];
int userInput;
System.out.println("Please enter a character ");
userInput = System.in.read(b, 0, 3);
System.out.println("No of character read  = " + userInput); for(int i = 0; i < b.length; i++)
System.out.print((char) b[i] + " " ); }
}如果输入123,显示:
No of character read = 3
1 2 3
但是如果我输入1个或2个数字,也就是小于3个数字,如45,显示如下:
No of character read=3没有4 5 输出。解决方法可以将System.out.print((char) b[i] + " " );改成pringln,或者去掉" "就会有显45示。问题是:搞不明白为什么输入,小于3个数字(System.in.read(b, 0, 3)读入3个数字),System.out.print((char) b[i] + " " );没有任何数字输出,去掉末尾的空格字符,或者换成println就可以输出数字

解决方案 »

  1.   

    加了""括号里的参数会变成String
      

  2.   

    “改成pringln,或者去掉" "就会有显45示”
    没出现这种情况,直接运行你的程序就可以显示呀当你一个也不输入的时候:
    b里的前两个字节是 13、10,也就是回车换行,后面的全没有当你输入一个的时候:
    b里的前三个字节是 你输入的字符、13、10,后面的全没有当你输入两个的时候:
    b里的前三个字节是 你输入的第一个字符、第二个字符、13,后面的全没有当你输入三个的时候:
    b里的前三个字节对应三个输入的字符
      

  3.   

    System.out.print和System.out.println只是一个换不换行的区别
    不可能出现println可以,print不可以的情况