java中从键盘输入的三种方法以及Console输入

Wesley13
• 阅读 593

java中从键盘输入的三种方法:

import java.io.BufferedReader;    
import java.io.IOException;    
import java.io.InputStreamReader;    
import java.util.Scanner;    

public class Inout {   
      
  public static void main(String[] args) {
    charTest();  //调用System.in方法   
    readTest();  //调用ReadTest方法   
    scannerTest();//调用ScannerTest方法   
  }   
  /**  
   * System.in和System.out方法  
   * 缺点一: 该方法能获取从键盘输入的字符,但只能针对一个字符的获取  
   * 缺点二: 获取的只是char类型的。如果想获得int,float等类型的输入,比较麻烦。  
   */  
  public static void charTest(){    
    try{   
      System.out.print("Enter a Char:");   
      char i = (char)System.in.read();   
      System.out.println("Yout Enter Char is:" + i);   
    }   
    catch(IOException e){   
      e.printStackTrace();   
    }   
        
  }   
  /**  
   * InputStreamReader和BufferedReader方法  
   * 优点: 可以获取键盘输入的字符串  
   * 缺点: 如何要获取的是int,float等类型的仍然需要转换  
   */  
  public static void readTest(){   
    System.out.println("ReadTest, Please Enter Data:");   
    InputStreamReader is = new InputStreamReader(System.in);  //new构造InputStreamReader对象   
    BufferedReader br = new BufferedReader(is);  //拿构造的方法传到BufferedReader中   
    try{  //该方法中有个IOExcepiton需要捕获   
      String name = br.readLine();   
      System.out.println("ReadTest Output:" + name);   
    }   
    catch(IOException e){   
      e.printStackTrace();   
    }   
        
  }   
  /**  
   * Scanner类中的方法  
   * 优点一: 可以获取键盘输入的字符串  
   * 优点二: 有现成的获取int,float等类型数据,非常强大,也非常方便;  
   */  
  public static void scannerTest(){   
    Scanner sc = new Scanner(System.in);   
    System.out.println("ScannerTest, Please Enter Name:");   
    String name = sc.nextLine();  //读取字符串型输入   
    System.out.println("ScannerTest, Please Enter Age:");   
    int age = sc.nextInt();  //读取整型输入   
    System.out.println("ScannerTest, Please Enter Salary:");   
    float salary = sc.nextFloat();  //读取float型输入   
    System.out.println("Your Information is as below:");   
    System.out.println("Name:" + name +"\n" + "Age:" + age + "\n"+"Salary:" + salary);
  }   
} 

Console输入: (注:该种方法不能在eclipse中使用)

import java.io.Console;
import java.io.PrintWriter;

public class TestConsole {
    public static void main(String[] args) {
        
        Console cons = System.console();
        if (cons != null) {
            
            PrintWriter printWriter = cons.writer();
            printWriter.write("input:");
            cons.flush();
            String str1 = cons.readLine();
            cons.format("%s", str1);
        }
    }
}

转载自:http://blog.csdn.net/u012249177/article/details/49586383

点赞
收藏
评论区
推荐文章
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
2年前
UIPath入门系列六之UI自动化进阶
UI自动化进阶一、InputActions:点击,键盘输入,快捷键,右键,鼠标悬停等1)   Default(默认):使用鼠标和键盘驱动程序来模拟人的操作,缺点是要求应用程序窗口保存活动的状态2)   SimulateType/Click(模拟):三种方法中最快的,后台工作,不支持快捷键,可自
御弟哥哥 御弟哥哥
3年前
如何正确停止Java线程,终止Java线程的三种方法
如何正确停止Java线程,终止Java线程的三种方法在Java中有以下3种方法可以终止正在运行的线程:1.使用退出标志,使线程正常退出,也就是当run()方法完成后线程终止。2.使用stop()方法强行终止线程,但不推荐,该方法已被弃用,原因见后文。3.使用interrupt方法中断线程。以下内容翻译自J
Wesley13 Wesley13
2年前
javaDoc
我们知道Java中有三种注释语句:1.//用于单行注释。2./\...\/用于多行注释,从/\开始,到\/结束,不能嵌套。3./\\...\/则是为支持jdk工具javadoc.exe而特有的注释语句。   javadoc工具能从java源文件中读取第三种注释,并能识别注释中用@标识的一些特殊变量(见表),制作成Htm
Stella981 Stella981
2年前
NIO之Buffer的clear()、rewind()、flip()方法的区别
Java的NIO中有关Buffer的几种常用方法比如clear,rewind和flip到底有哪些区别。下面给大家这三种方法的源码,方便大家记忆。clear()方法用于写模式,其作用为情况Buffer中的内容,所谓清空是指写上限与Buffer的真实容量相同,即limitcapacity,同时将当前写位置置为最前端下标为0处。代码如下:1.pu
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
2年前
IOS全局变量
IOS中的全局变量和JAVA中的全局变量定义和使用方法不一样,在Java中,只需要将变量定义为static就行了。而在IOS中这种方法不适合。IOS中定义全局变量有三种方法:1.使用extern关键字在AppDelegate.m或AppDelegate.h中写入你需要的全局变量名,例如:int name;注意定义全局变量时候不能初始化,否则报错
Wesley13 Wesley13
2年前
Java日期时间API系列30
  实际使用中,经常需要使用不同精确度的Date,比如保留到天2020042300:00:00,保留到小时,保留到分钟,保留到秒等,常见的方法是通过格式化到指定精确度(比如:yyyyMMdd),然后再解析为Date。Java8中可以用更多的方法来实现这个需求,下面使用三种方法:使用Format方法、 使用Of方法和使用With方法,性能对比,使用
Wesley13 Wesley13
2年前
Java多线程学习笔记
Java中创建多线程的三种方法1、继承Thread类创建线程2、实现Runnable接口创建线程3、使用Callable和Future创建线程\
Wesley13 Wesley13
2年前
Java利用 ganymed
packageapi;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.IOException;importjava.io.InputStream;importorg.apache.log4j.\;import