什么是标准输入
在Java中,标准输入指的是控制台。当我们需要读取用户输入时,就需要使用标准输入。
使用Java的Scanner类读取标准输入
Scanner类简介
Scanner是Java中一个常用的类,它可以用来读取用户在控制台输入的数据。要使用Scanner类,需要先在程序中引入它:
import java.util.Scanner;
示例
下面是一个使用Scanner类读取整数的简单示例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入整数:");
int num = scanner.nextInt();
System.out.println("输入的数字是:" + num);
}
}
在上面的示例中,我们首先创建了一个Scanner对象,并将标准输入传递给它。之后,我们使用nextInt()方法从Scanner对象中读取用户输入的整数。最后,我们在控制台输出了用户输入的数字。
读取其他类型的数据
如果需要读取浮点数、字符串或其他类型的数据,可以使用Scanner对象的其他方法。例如,要读取浮点数,可以使用nextDouble方法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个浮点数:");
double num = scanner.nextDouble();
System.out.println("输入的数字是:" + num);
}
}
注意,如果用户输入的数据类型与你使用的方法不匹配,程序会抛出异常。因此,在读取不同类型的数据时,需要使用相应的方法。
使用BufferedReader类读取标准输入
BufferedReader类简介
BufferedReader是Java中的一个类,可以用来读取文本文件。它的一个重要功能是可以读取标准输入。
示例
下面是一个使用BufferedReader类读取标准输入的简单示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("请输入字符串:");
String str = reader.readLine();
System.out.println("输入的字符串是:" + str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们首先创建了一个BufferedReader对象,并将标准输入流传递给它。之后,我们使用readLine方法从BufferedReader对象中读取用户输入的字符串。最后,我们在控制台输出了用户输入的字符串。
使用try-with-resources语句
在上面的示例中,我们使用了try-catch语句来捕获可能出现的异常。另一种处理异常的方法是使用Java 7中引入的try-with-resources语句。
try-with-resources语句可以自动关闭资源,因此不需要手动关闭BufferedReader对象。以下是使用try-with-resources语句的示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("请输入字符串:");
String str = reader.readLine();
System.out.println("输入的字符串是:" + str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用了try-with-resources语句来创建BufferedReader对象。当程序执行结束后,会自动关闭BufferedReader对象。
结论
Java中可以使用Scanner类和BufferedReader类来读取标准输入流。Scanner类可读取不同类型的数据,而BufferedReader类可以读取文本文件,包括标准输入流。在使用BufferedReader类时,可以使用try-with-resources语句自动关闭资源,简化代码。