使用io流读取控制台输入的信息
避免了繁琐的
System.out.println("请输入数字:")
Scanner input = new Scanner(System.in);
int a = input.nextInt();
System.out.println("请输入字符串:")
String b = input.next();
//...
//很恶心,繁琐
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* <p>ClassName: InputUtils</p>
* <p>Description: </p>
* @author gangye
* @date 2018年12月24日 下午4:48:20
*/
public class InputUtils {
private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//接收控制台输入的int值
public static int inputInt(String msg) {
//输出提示信息
System.out.println(msg);
int input = -1;
try {
String line = br.readLine();
input = Integer.valueOf(line);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println("输入的不是数字,请重新输入!");
//出现异常后,提示用户继续操作
return inputInt(msg);
}
return input;
}
//接收控制台输入的long值
public static long inputLong(String msg) {
//输出提示信息
System.out.println(msg);
long input = -1;
try {
String line = br.readLine();
input = Long.valueOf(line);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println("输入的不是数字,请重新输入!");
//出现异常后,提示用户继续操作
return inputLong(msg);
}
return input;
}
//接收控制台输入的double值
public static double inputDouble(String msg) {
//输出提示信息
System.out.println(msg);
double input = -1;
try {
String line = br.readLine();
input = Double.valueOf(line);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println("输入的不是数字,请重新输入!");
//出现异常后,提示用户继续操作
return inputDouble(msg);
}
return input;
}
//接收控制台输入的float值
public static float inputFloat(String msg) {
//输出提示信息
System.out.println(msg);
float input = -1;
try {
String line = br.readLine();
input = Float.valueOf(line);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println("输入的不是数字,请重新输入!");
//出现异常后,提示用户继续操作
return inputFloat(msg);
}
return input;
}
//接收控制台输入的String值
public static String inputString(String msg) {
//输出提示信息
System.out.println(msg);
String input = null;
try {
input = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return input;
}
}