第一种方法实在没听说过第二种是常用的字节流和字符流转换桥方式。第三种是读进字节流,通过String解码成字符的方式。如果是需要指定不同的解码方式,可以使用它。第二种是最好的方法,有过滤流。

解决方案 »

  1.   

    其实就一种方法
    System.in
    返回的是一个InputStream
    你说的3种方式都是对InputStream的再次修饰。以便可以使用修饰类中的不同方法。
      

  2.   

    第一种方法: 调用的是import java.util.*;包里面的Scanner类, 直接从键盘读取自己定义的参数类型,键盘输入的类型和自定义的参数类型不符系统报错。例如:
    Scanner input=new Scanner(System.in);
    System.out.print("请输入数字:");
    int couser=input.nextln();
    第二种方法:BufferedReader流能够读取文本行,通过想BufferedReader传递一个Reader对象,来创建一个BufferedReader对象,之所以这样做是因为FileReader没有提供读取文本行的功能
    第三种方法: 是定义了一个字节数组长度,并做异常处理,读取当前字节数;
      

  3.   

    Scanner keyborad = new Scanner(System.in);
    a = keyboard.nextInt();//从键盘中输入整数
      

  4.   

    JAVA中的流就是一层一层包装的,在设计模式中就叫做Decorator好像哈~~~~~
      

  5.   

    System.in (是InputStream)从键盘读进来的是ascii码,即字节流,,
    而字节流要转化成字符流是需要进行解码的,java的char表示一个16位Unicode字符,默认是解码方式是GBK。
    而java的流是一层一层嵌套的,即节点流和过滤流,,在节点流System.in 的基础上嵌套buffered缓冲流,字节流和字符流转换的桥是InputStreamReader。我认为第二种方法最好,因为他是流的概念最好的体现,而且有缓冲。。第三种方法自己建字节数组,一看就不标准但是String这个构造函数的确是字节和字符编解码的很好方法。。如
    String strGBK=new String(str.getBytes("ISO-8859-1"),"GBK");    
    //str.getBytes("ISO-8859-1")这是一个编码过程  然后再由GBK解码的过程。第一种方法是新方法,难怪我在老的api里都搜不到这个类是挺简化的。
      

  6.   

    都是用到System.in,其实就是一种方法,不同的读法。
      

  7.   

    我比较常用第二种方法,
    因为若用第一种方法时,从键盘输入,只能获取一种类型的数据。
    第二种方法的话,无论是什么类型的数据,获取进来的都是STRING,
    在JAVA里面操作STRING还是比较方便的。
    第三种方法比较少用。。
      

  8.   

    查查JDK_API可能对你有点帮助。