Java命令行输入:Scanner与BufferedReader方法解析

4星 · 超过85%的资源 需积分: 50 11 下载量 101 浏览量 更新于2024-09-12 收藏 2KB TXT 举报
"Java中从命令控制台获取用户输入数据的方法" 在Java编程中,从命令行或控制台获取用户输入的数据是常见的需求。这里主要介绍三种常用的方法:使用System.in.read(),Scanner类,以及BufferedReader类。 1. 使用System.in.read()获取单个字符 这种方法适用于获取单个字符或字节。`System.in`是标准输入流,代表键盘输入。`System.in.read()`函数读取一个字节,并返回该字节的值。由于它返回的是整型(int)值,如果读到的是ASCII码表中的字符,会得到0-127的数值。需要注意的是,这种方法无法方便地处理空格、回车等特殊字符,因为它们会被当作普通字符处理。 2. 使用Scanner类获取字符串和其他类型的数据 `java.util.Scanner`类是Java提供的一个强大的输入工具,它可以方便地解析各种数据类型,包括字符串、整数、浮点数、布尔值等。例如,下面的代码演示了如何使用Scanner获取字符串: ```java import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个字符串:"); String input = sc.nextLine(); System.out.println("你的输入是:" + input); } } ``` 在这个例子中,`sc.nextLine()`会等待用户输入一行内容,直到按下回车键为止。Scanner类还提供了nextInt(), nextFloat(), nextBoolean()等方法,可以方便地获取整数、浮点数和布尔值。 3. 使用BufferedReader类获取多行文本 `java.io.BufferedReader`类适合读取长文本,例如用户输入的多行内容。它通过`readLine()`方法逐行读取输入,直到遇到EOF(文件结束)或者用户按下Ctrl+C中断程序。以下代码展示了如何使用BufferedReader读取用户输入的一行文本: ```java import java.io.*; public class BufferedReaderDemo { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String text = br.readLine(); System.out.println(text); } } ``` 在这个例子中,`br.readLine()`方法会等待用户输入一行内容并将其存储在变量text中,直到用户按下回车键。 总结起来,根据不同的需求,可以选择使用System.in.read()来获取单个字符,Scanner类来获取各种类型的输入,或者使用BufferedReader类来读取多行文本。在实际编程中,选择哪种方式取决于应用的具体场景。