精华内容
下载资源
问答
  • 控制台输入 程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。 导包语法: import 包名.类名;//将外部class文件功能引入到自身文件中 使用顺序: 导入java.util.Scanner 声明Scanner类型的...

    控制台输入


    • 程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。

    • 导包语法: import 包名.类名;//将外部class文件功能引入到自身文件中

    • 使用顺序:

      • 导入java.util.Scanner
      • 声明Scanner类型的变量
      • 使用Scanner类中的对应函数(区分类型):
        • nextInt();   //获得整数

        • nextDoublle(); &emsp //获得小数

        • next();   //获得字符串

        • next().charAt(0);   //获得单个字符

    注: 如果输入了不匹配的数据,则会产生java.util.InputMismatchException异常

    展开全文
  • 今天,运用字节流读取控制台输入在技术上仍是可行的,但这样做需要用到不被赞成的方法,这种做法不值得推荐。Java 2中读取控制台输入的首选方法是字符流,它使程序容易符合国际标准并且易于维护。 注意:Java没有像...

    今天,运用字节流读取控制台输入在技术上仍是可行的,但这样做需要用到不被赞成的方法,这种做法不值得推荐。Java 2中读取控制台输入的首选方法是字符流,它使程序容易符合国际标准并且易于维护。

    注意:Java没有像标准C的函数scanf()或C++输入操作符那样的统一的控制台输入方法。

    Java中,控制台输入由从System.in读取数据来完成。为获得属于控制台的字符流,在BufferedReader对象中包装System.in。

    BufferedReader 支持缓冲输入流。它最常见的构造函数如下:

    BufferedReader(Reader inputReader) 
    

    这里,inputReader是链接被创建的BufferedReader实例的流。Reader是一个抽象类。它的一个具体的子类是InputStreamReader,该子类把字节转换成字符。为获得链接System.in的一个InputStreamReader的对象,用下面的构造函数:

    InputStreamReader(InputStream inputStream) 
    

    因为System .in引用了InputStream 类型的对象,它可以用于inputStream。综上所述,下面的一行代码创建了与键盘相连的BufferedReader对象。

    BufferedReader br = new BufferedReader(new 
                        InputStreamReader(System.in)); 
    

    当该语句执行后,br是通过System.in生成的链接控制台的字符流。

    从BufferedReader读取字符,用read()。我们所用的read()版本如下:

    int read( ) throws IOException 
    

    该方法每次执行都从输入流读取一个字符然后以整型返回。当遇到流的末尾时它返回-1。你可以看到,它要引发一个IOException异常。

    下面的例子程序演示了read()方法,从控制台读取字符直到用户键入“q”:

    // Use a BufferedReader to read characters from the console. 
    import java.io.*; 
    class BRRead { 
     public static void main(String args[]) 
     throws IOException 
     { 
     char c; 
     BufferedReader br = new 
     BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter characters, 'q' to quit."); 
     // read characters 
     do { 
     c = (char) br.read(); 
     System.out.println(c); 
     } while(c != 'q'); 
     } 
    }
    

    下面是程序运行:

    Enter characters, 'q' to quit. 
    123abcq 
    1 
    2 
    3 
    a 
    b 
    c 
    q
    

    程序的输出看起来与预想的略有不同,因为System.in在默认情况下是以行来缓冲的。这意味着在你键入ENTER以前实际上是没有输入的。你能猜想,这不能充分体现交互式控制台输入条件下read()的独特价值。

    展开全文
  •  控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面的介绍中可以使用System.out.println将需要输出的内容显示到控制台,本部分将介绍如何接受用户在控制台中的输入。 使用控制台输入是用户...

    读取控制台输入

        前面介绍了使用IO类实现文件读写的示例,其实在很多地方还需要使用到IO类,这里再以读取控制台输入为例子来介绍IO类的使用。

        控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面的介绍中可以使用System.out.println将需要输出的内容显示到控制台,本部分将介绍如何接受用户在控制台中的输入。

        使用控制台输入是用户在程序运行时和程序进行交互的一种基础手段,这种手段是Windows操作系统出现以前,操作系统位于DOS时代时,用户和程序交互的主要手段。当然,现在这种交互的方式已经被图形界面(GUI)程序取代了。

        在读取控制台操作中,操作系统在用户在控制台输入内容,并按回车键提交以后,将用户提交的内容传递给Java运行时系统,Java运行时系统将用户输入的信息构造成一个输入流对象——System.in,在程序员读取控制台输入时,只需要从该流中读取数据即可。至于构造流System.in的过程对于程序员来说是透明的。

        查阅JDK API可以发现,System类中的静态属性in是InputStream类型的对象,可以按照输入流的读取方法读取即可。

        下面的示例代码实现了输入“回显”的功能,即将用户输入的内容重新显示到控制台,示例代码如下:

    /**

     * 读取控制台输入,并将输入的内容显示到控制台

     */

    public class ReadConsole1 {

             public static void main(String[] args) {

                       try{

                                //提示信息

                                System.out.println("请输入:");

                                //数组缓冲

                                byte[] b = new byte[1024];

                                //读取数据

                                int n = System.in.read(b);

                                //转换为字符串

                                String s = new String(b,0,n);

                                //回显内容

                                System.out.println("输入内容为:" + s);

                       }catch(Exception e){}

             }

    }
     


        在该示例代码中,从System.in中读取出用户的输入,然后将用户输入的内容转换为字符串s,然后输出该字符串的内容即可。

        下面实现一个简单的逻辑,功能为:回显用户在控制台输入的内容,当用户输入quit时程序运行结束。实现的代码如下:

               /**
     * 读取控制台输入

     * 循环回显内容,当输入quit时退出程序

     */

    public class ReadConsole2 {

             public static void main(String[] args) {

                       //数组缓冲

                       byte[] b = new byte[1024];

                       //有效数据个数

                       int n = 0;

                       try{

                                while(true){

                                         //提示信息

                                         System.out.println("请输入:");

                                         //读取数据

                                         n = System.in.read(b);

                                         //转换为字符串

                                         String s = new String(b,0,n - 2);

                                         //判断是否是quit

                                         if(s.equalsIgnoreCase("quit")){

                                                   break;  //结束循环

                                         }

                                         //回显内容

                                         System.out.println("输入内容为:" + s);

                                }

                       }catch(Exception e){}

             }

    }
     


        在该示例代码中,加入了一个while循环,使得用户的输入可以进行多次,在用户输入时,送入输入流的内容除了用户输入的内容以外,还包含“/r/n”这两个字符,所以在将输入的内容和quit比较时,去掉读出的最后2个字符,将剩余的内容转换为字符串。

     

    展开全文
  • 在Java中,有三种方法可以从控制台读取输入: System.console(JDK 1.6) 扫描仪(JDK 1.5) BufferedReader + InputStreamReader(经典) 1. System.console 从JDK 1.6开始,开发人员开始切换到更简单...

    在Java中,有三种方法可以从控制台读取输入:

    1. System.console(JDK 1.6)
    2. 扫描仪(JDK 1.5)
    3. BufferedReader + InputStreamReader(经典)

    1. System.console

    从JDK 1.6开始,开发人员开始切换到更简单,功能更强大的java.io.Console类。

    JavaConsole.java
    package com.mkyong.io;
    
    import java.io.Console;
    
    public class JavaConsole {
    
        public static void main(String[] args) {
    
            Console console = System.console();
    
            String input = "";
            while (!"q".equalsIgnoreCase(input)) {
    
                System.out.print("Enter something (q to quite): ");
    
                input = console.readLine();
                System.out.println("input : " + input);
            }
    
            System.out.println("bye bye!");
        }
    
    }

    System.console()将在IDE中返回null,从而在控制台或终端中手动运行该类。

    ~/projects/target/classes$ java com.mkyong.io.JavaConsole
    
    Enter something (q to quite): hello 123
    input : hello 123
    Enter something (q to quite): hello Java
    input : hello Java
    Enter something (q to quite): mkyong
    input : mkyong
    Enter something (q to quite): q
    input : q
    bye bye!

    PS更多Java System.console()示例。

    2.扫描仪

    在JDK 1.6之前,这是从控制台读取输入的Scanner

    JavaScanner.java
    package com.mkyong.io;
    
    import java.util.Scanner;
    
    public class JavaScanner {
    
        public static void main(String[] args) {
    
            Scanner scanner = new Scanner(System.in);
    
            String input = "";
            while (!"q".equalsIgnoreCase(input)) {
    
                System.out.print("Enter something (q to quite): ");
    
                input = scanner.nextLine();
                System.out.println("input : " + input);
            }
    
            System.out.println("bye bye!");
        }
    
    }
    Enter something (q to quite): hello mkyong
    input : hello mkyong
    Enter something (q to quite): jdk 1.5
    input : jdk 1.5
    Enter something (q to quite): exit
    input : exit
    Enter something (q to quite): q
    input : q
    bye bye!

    PS更多Java扫描器示例示例。

    3. BufferedReader + InputStreamReader

    在过去的JDK 1.1中,我们使用BufferedReader + InputStreamReader从控制台读取输入。

    JavaBufferedReaderClassic.java
    package com.mkyong.io;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class JavaBufferedReaderClassic {
    
        public static void main(String[] args) {
    
            BufferedReader br = null;
    
            try {
    
                br = new BufferedReader(new InputStreamReader(System.in));
    
                String input = "";
                while (!"q".equalsIgnoreCase(input)) {
    
                    System.out.print("Enter something (q to quite): ");
    
                    input = br.readLine();
                    System.out.println("input : " + input);
                }
    
                System.out.println("bye bye!");
    
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
    
        }
    
    }

    JDK 1.7 try-with-resources

    JavaBufferedReader.java
    package com.mkyong.io;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class JavaBufferedReader {
    
        public static void main(String[] args) {
    
            // jdk 1.7
            try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
    
                String input = "";
                while (!"q".equalsIgnoreCase(input)) {
    
                    System.out.print("Enter something (q to quite): ");
    
                    input = br.readLine();
                    System.out.println("input : " + input);
                }
    
                System.out.println("bye bye!");
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
    }

    参考文献

    翻译自: https://mkyong.com/java/how-to-read-input-from-console-java/

    展开全文
  • java 控制台输入

    2020-04-29 09:51:21
    控制台中读取数据是一个比较常用的功能, JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台输入数据的方法每增加一个版本号,就有一种新增的...
  • 在Java中经常会用到Scanner从控制台输入,有的时候就会需求判断从控制台输入的数据是否为某种类型,最常用的判断为输入的是否为数字,这个时候就需要用到hasNextInt()方法了。 举例说明: import java.util....
  • Java控制台输入

    2011-11-08 14:15:31
    Java控制台输入 0 引言 从控制台中读取数据是一个比较常用的功能, JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增加...
  • java读取控制台 输入

    2013-04-30 09:52:50
    控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面的介绍中可以使用System.out.println将需要输出的内容显示到控制台,本部分将介绍如何接受用户在控制台中的输入。 使用控制台输...
  •  从控制台中读取数据是一个比较常用的功能, JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台输入数据的方法每增加一个版本号,就有一种新增...
  • java控制台输入

    2010-06-06 19:53:34
    0 引言从控制台中读取数据是一个比较常用的功能, JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台输入数据的方法每增加一个版本号,就有一...
  • 使用Scanner来取得使用者的输入很方便,但是它以空白来区隔每一个输入字串,某些时候并不适用,因为使用者可能输入一个字串,中间会包括空白字元,而您希望取得完整的字串。这是就要用BufferedReader,他是Java.io...
  • java控制台输入 方式

    2012-01-16 13:19:46
    控制台中读取数据是一个比较常用的功能, JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台输入数据的方法每增加一个版本号,就有一种新增的...
  • ![图片说明](https://img-ask.csdn.net/upload/201908/01/1564653838_989697.png) 蓝色部分,我在控制台如何输入身份证号,然后使他提示没有输入身份证号。 但是控制台不输入内容程序不走下一步!
  • JAVA数据输入方式(命令行输入和控制台输入) 一、 运行程序时,通过命令行输入。(最简单,但比较笨的一种方法) 二、使用IO流 (比较好的方法,但有点难) 三、如何将String类型转换成其他类型
  •  控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面的介绍中可以使用System.out.println将需要输出的内容显示到控制台,本部分将介绍如何接受用户在控制台中的输入。  使用控制台输入是...
  • 总结 目的 完成疯狂java讲义第四章作业 提升代码能力 熟悉java语言 环境 Windows8.1系统jdk1.8记事本(需要把文件扩展名...*/里面添加了跨行注释 如何提取控制台输入的问题 这个问题,根据书上例子,采用bufferedreader解
  • canner类最实用的地方表现获取控制台输入。当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的...
  • Junit测试中模拟控制台输入输出

    千次阅读 2020-04-18 22:26:00
    最近的一次软件构造实验中包含控制台交互的代码,在这部分代码的测试过程中遇到了问题:如何在Junit测试中模拟控制台输入,并且检测输出到控制台的内容是否正确呢?通过查阅资料,问题得以解决。下面就来介绍一下在...
  • 原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们技术深度上不断精进。 我们知道,高并发代表着大流量,高并发系统...
  • IDEA中@Test测试无法在控制台输入的问题 最近发现,在IDEA中Junit使用Scanner语句,控制台会出现无法输入的问题,如下: 在“请输入:”这里,你会发现无论你如何输入,它就是没结果。 解决方法: 选择如下...
  • 比如你的代码(Greetings.java)存放:D:\testJDK,cmd窗口中cd D:\testJDK 输入javac Greetings.java(回车) (如果没有任何提示则编译通过) 在输入java Greetings(回车)...
  • 简单说一下 如何使用io读取到本地的文件 并在控制台输出 package com.szy.test.io; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; ...
  • 11.3.2 读取控制台输入 ... 控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面的介绍中可以使用System.out.println将需要输出的内容显示到控制台,本部分将介绍如何接受用户在控制台中的输入。 

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 341
精华内容 136
关键字:

java如何在控制台输入

java 订阅