文档详情

Java从键盘输入的常用方法.doc

发布:2017-06-05约5.25千字共8页下载文档
文本预览下载声明
方法1.Scanner scanner=new Scanner(System.in); ?方法2.BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); ? ?方法3.byte[] buffer = new byte[len]; try { System.in.read(buffer,0,len); } catch(Exception e){} String str = new String(buffer); 一 InputStreamReader流 String str; InputStreamReader ir; boolean first = true; ?? int c; ?? ?? System.out.println(input the String:); ?? ?? try{ ??? ??? while((c = ir.read()) != \r ){ ???? ???? if(first){ ????? ????? System.out.print(get string:); ????? ????? first = false; ????? ???? }else{ ????? ????? System.out.print(.); ????? ???? } ???? ???? str = str+(char)c; ???? ???? System.out.print((char)c +(+c+)); ???? ??? } 这个方法比较笨拙并且适合输入一次字符串的情况,如果需要多次输入字符串那将会出现问题,这个问题很隐晦,在你第二次输入字符串以后包括第二次输入的字符串都会得到一个\t字符在字符串的开始,这个问题处理很棘手的,并且如果不注意就发现不了,如果在以后的字符串的操作中有字符串转换那将更麻烦,测试输入字符串的长度会发现长度是你输入的长度+1,很KB(恐怖)的。 这个方法是教科书上的例子,就不说是哪个版本了,害的我很苦啊! 二 BufferReader流 BufferedReader?? buffer=new?? BufferedReader(new?? InputStreamReader(System.in));?? ?? ?? String??? str=buffer.readLine(); 这个方法很方便,又能让你想输入几次输入几次,不会出现上面那个问题。因为每次都会创建一个新的输入流,因此每次输入的不会相互影响。 比较这两种方法主要是为了区分在不同的情况下使用不同的方法,不一定方法一没有用,当你需要的不是字符串而是字符时,方法一会更方便。 一楼已经提供了InputStreamReader类中的方法接收。 但我们一般不用这个, 这个已经是很久以前的玩意 ? 如果你只是做控制台应用程序的话? 建议用Scanner ? import java.util.Scanner;?? public class Test{ ? public static void main(String[] args){ ???? Scanner input = new Scanner(System.in); // System.in 是必要的参数? 它将传递你系统的输入“流” ?????System.out.print(请输入一个数字); ???? int m = input.nextInt();? // 接收int类型 ???? System.out.print(请输入你的名字:); ???? String name = input.next(); // 接收一个String类型 ?????System.out.print(请输入您的身高:); ???? double d = input.nextDouble();? // 以此类推 ?? // 更详细 请参见 JDK 帮助文档(API) Java - util 包中的 Scanner类! ? } } 1楼说的那两种方法本质上是一样的,都是用InputStreamReader来把标准输入流System.in转换成字符流,用BufferedReader只不过是把InputStreamReader包装成了有缓冲的输入流,性能比直接用InputStreamReader好。 2楼说的方法是一种比较好的替代方法,是Sun为了简化读取键盘操作而提供的新的API,但是你使用的JDK必须是1.5及以上版本。对于一些老的程序,需要兼容jdk 1.4的话,就不能用这种方法了,只能用1楼的方法 在Java中使用键盘输入数据【总结篇】 分类: Java 2010-06-07 17:26 139人
显示全部
相似文档