在Java中,我们如何从标准输入读取数据?

什么是标准输入

在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语句自动关闭资源,简化代码。

后端开发标签