Java中从控制台读取输入的方法的总结
2015-07-22 11:44
495 查看
这两天在做算法题的时候,老是要求从控制台读取输入作为函数的参数来运行程序,所以特地总结了一下Java从控制台读取输入的方法。如下;
在较早的版本中,Java只能以一种方式读取控制台的输入,并且有点麻烦,那就是用System.in获取系统的输入流,再桥接到字符流用字符流来获取输入的内容
import java.io.IOException;
import java.io.InputStreamReader;
public class Test1 {
public static void main(String[] args) {
String str = readString(“请输入字符串:“);
System.out.println(”readString 方法的输入:“ + str);
}
/**
* 使用系统的输入流,从控制台中读取数据<br/>
* 用于所用的JDK版本
* @param prompt 提示信息
* @return 输入的字符串
*/
private static String readString(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;
}
}
这种方法是很麻烦的,不仅要获取系统的输入流,还要转换成字符流,并且还要进行异常的捕获,所以到后来JDK1.5推出一种新的较为简单的方法:
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
String str = readString5(”请输入字符串:“);
System.out.println(”readString5 方法的输入:“ + str);
}
/**
* 使用扫描器类(Scanner)从控制台中读取字符串<br/>
* 适用于JDK 5.0及以后的版本
* @param prompt 提示信息
* @return 输入的字符串
*/
private static String readString5(String prompt) {
Scanner scanner = new Scanner(System.in);
System.out.print(prompt);
return scanner.nextLine();
//这种方法可以读取多种数据类型的数据,比如使用nextInt读取Int类型,使用nextFlost读取flost类型等
}
}
这种方法之所以简单是因为Scanner进行了更高层次的封装,比如在Scanner内部就已经处理了异常
在JDK6.0出现后,又多了一种新的方法,那就是利用java.io.Console类来实现
import java.io.Console;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
String str = readString6(”请输入字符串:“);
System.out.println(”readString6 方法的输入:“ + str);
}
/**
* 使用控制台类(Console)从控制台中读取字符串<br/>
* 适用于JDK 1.6或以后的版本
* @param prompt 提示信息
* @return 输入的字符串
*/
private static String readString6(String prompt) {
Console console = System.console();
if (console == null) {
throw new IllegalStateException(”不能使用控制台“);
}
return console.readLine(prompt);
}
}
在较早的版本中,Java只能以一种方式读取控制台的输入,并且有点麻烦,那就是用System.in获取系统的输入流,再桥接到字符流用字符流来获取输入的内容
import java.io.IOException;
import java.io.InputStreamReader;
public class Test1 {
public static void main(String[] args) {
String str = readString(“请输入字符串:“);
System.out.println(”readString 方法的输入:“ + str);
}
/**
* 使用系统的输入流,从控制台中读取数据<br/>
* 用于所用的JDK版本
* @param prompt 提示信息
* @return 输入的字符串
*/
private static String readString(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;
}
}
这种方法是很麻烦的,不仅要获取系统的输入流,还要转换成字符流,并且还要进行异常的捕获,所以到后来JDK1.5推出一种新的较为简单的方法:
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
String str = readString5(”请输入字符串:“);
System.out.println(”readString5 方法的输入:“ + str);
}
/**
* 使用扫描器类(Scanner)从控制台中读取字符串<br/>
* 适用于JDK 5.0及以后的版本
* @param prompt 提示信息
* @return 输入的字符串
*/
private static String readString5(String prompt) {
Scanner scanner = new Scanner(System.in);
System.out.print(prompt);
return scanner.nextLine();
//这种方法可以读取多种数据类型的数据,比如使用nextInt读取Int类型,使用nextFlost读取flost类型等
}
}
这种方法之所以简单是因为Scanner进行了更高层次的封装,比如在Scanner内部就已经处理了异常
在JDK6.0出现后,又多了一种新的方法,那就是利用java.io.Console类来实现
import java.io.Console;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
String str = readString6(”请输入字符串:“);
System.out.println(”readString6 方法的输入:“ + str);
}
/**
* 使用控制台类(Console)从控制台中读取字符串<br/>
* 适用于JDK 1.6或以后的版本
* @param prompt 提示信息
* @return 输入的字符串
*/
private static String readString6(String prompt) {
Console console = System.console();
if (console == null) {
throw new IllegalStateException(”不能使用控制台“);
}
return console.readLine(prompt);
}
}
相关文章推荐
- Java连接JDBC数据库
- java二维不定长数组测试
- eclipse 新建SDK项目
- java_acm快速输入和输出
- Java NIO 特性学习
- Java学习--多线程中synchronized的使用心得
- JAVA 实现银行卡归属地查询
- javaScirpt学习之事件
- Windows+eclipse+Android+java+api+opencv使用需要注意的几点
- java SSH整合配置
- spring MVC js css图片等静态资源无法加载问题
- java Web笔记
- 【SpringMVC整合MyBatis】商品修改功能分析
- mybatis的dao接口实现小结
- Struts logic循环标签(二)
- springmvc Jsp页面向后台传递中文参数乱码问题
- java读取properties文件方法和对比
- Java远程调用RMI(Remote Method Invocation)
- 利用Eclipse构建Spark集成开发环境
- java 编程小技巧