在Java编程语言中,字符终端上的输入处理是常见的任务,特别是在命令行接口或者控制台应用程序中。本篇文章将详细介绍在Java中从字符终端获取输入的三种主要方式,并提供相关示例代码。 1. **使用`java.lang.System.in`**: 这是最基础的输入方法,适用于所有JDK版本。`System.in`是一个`InputStream`对象,表示标准输入流,通常是从键盘读取。我们可以使用`BufferedReader`与`InputStreamReader`组合来读取用户输入。下面是一个简单的例子: ```java import java.io.BufferedReader; import java.io.InputStreamReader; public class TestConsole1 { public static void main(String[] args) { String str = readDataFromConsole("Please input string:"); System.out.println("The information from console: " + str); } private static String readDataFromConsole(String prompt) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; try { System.out.print(prompt); str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } } ``` 2. **使用`java.util.Scanner`**: 自JDK 1.5引入`Scanner`类后,它成为了更方便的获取控制台输入的方法。`Scanner`提供了许多便利的方法,如`nextInt()`、`nextDouble()`等,可以直接读取不同类型的输入。下面是一个使用`Scanner`的例子: ```java import java.util.Scanner; public class TestConsole2 { public static void main(String[] args) { String str = readDataFromConsole("Please input string:"); System.out.println("The information from console: " + str); } private static String readDataFromConsole(String prompt) { Scanner scanner = new Scanner(System.in); System.out.print(prompt); return scanner.nextLine(); } } ``` `Scanner`不仅可以读取控制台输入,还可以方便地扫描文件并解析其中的数据,例如读取一个包含数字的文件并计算它们的和: ```java public class TestConsole4 { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("num.txt"); fw.write("2 2.2 3.3 3.33 4.5 done"); fw.close(); System.out.println("Sum is " + scanFileForSum("num.txt")); } public static double scanFileForSum(String fileName) throws IOException { Scanner scanner = new Scanner(new File(fileName)); double sum = 0; while (scanner.hasNextDouble()) { sum += scanner.nextDouble(); } return sum; } } ``` 3. **使用`java.io.Console`**: 自JDK 1.6起,Java引入了`Console`类,它提供了一些特定的功能,如不回显地读取密码。`Console`类的方法包括`readLine()`、`readPassword()`等。以下是一个使用`Console`读取密码的例子: ```java import java.io.Console; public class TestConsole3 { public static void main(String[] args) { Console console = System.console(); if (console != null) { char[] password = console.readPassword("Enter your password: "); System.out.println("Password entered: " + new String(password)); // 注意:实际应用中不应打印密码 } else { System.out.println("No console available."); } } } ``` 总结来说,Java中获取字符终端输入的方式有多种选择,每种都有其适用场景。`System.in`配合`BufferedReader`适合基本的文本输入,`Scanner`提供了更多的数据类型解析功能,而`Console`则在处理敏感信息时表现出优越性,如无回显的密码输入。开发者可以根据实际需求选择合适的方法。
- 粉丝: 5
- 资源: 917
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学校课程软件工程常见10道题目以及答案demo
- javaweb新手开发中常见的目录结构讲解
- 新手小白的git使用的手册入门学习demo
- 基于Java观察者模式的info-express多对多广播通信框架设计源码
- 利用python爬取豆瓣电影评分简单案例demo
- 机器人开发中常见的几道问题以及答案demo
- 基于SpringBoot和layuimini的简洁美观后台权限管理系统设计源码
- 实验报告五六代码.zip
- hdw-dubbo-ui基于vue、element-ui构建开发,实现后台管理前端功能.zip
- (Grafana + Zabbix + ASP.NET Core 2.1 + ECharts + Dapper + Swagger + layuiAdmin)基于角色授权的权限体系.zip