如何从 Java 中的 System.in 读取输入

在Java编程中,从用户获取输入是一项常见任务。Java提供了System.in作为标准输入流的对象,它可以用于从控制台或其他输入源读取数据。本文将详细介绍如何使用Java中的System.in来读取输入,并提供一些示例和注意事项。

System.in 概述:

System.in是Java的标准输入流,它是InputStream类的一个实例。它通常用于从控制台读取用户输入,但也可以重定向到其他输入源,如文件。

使用 System.in 读取输入:

要从System.in读取输入,需要使用InputStreamReader和BufferedReader类来处理输入流。以下是读取输入的基本步骤:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class InputExample {
    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        try {
            System.out.print("请输入一个字符串:");
            String input = reader.readLine();
            System.out.println("您输入的字符串是:" + input);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例中,我们首先创建一个BufferedReader对象,它使用InputStreamReader将System.in包装起来。然后,使用readLine()方法读取用户输入的字符串,并将其存储在变量input中。最后,我们打印出用户输入的字符串。

示例说明:

下面是一些示例,演示了如何从System.in读取不同类型的输入:

      • 读取整数:
        System.out.print("请输入一个整数:");
        int number = Integer.parseInt(reader.readLine());
        System.out.println("您输入的整数是:" + number);
        
      • 读取浮点数:
        System.out.print("请输入一个浮点数:");
        double number = Double.parseDouble(reader.readLine());
        System.out.println("您输入的浮点数是:" + number);
        
      • 读取布尔值:
        System.out.print("请输入一个布尔值(true/false):");
        boolean value = Boolean.parseBoolean(reader.readLine());
        System.out.println("您输入的布尔值是:" + value);
        

注意事项:

      • 在读取输入之前,确保在使用System.in之前创建BufferedReader对象。
      • 在读取输入时,要注意异常处理。例如,使用try-catch块来捕获可能的IOException。
      • 根据预期的输入类型,使用适当的方法进行类型转换。例如,使用Integer.parseInt()将字符串转换为整数。
      • 当从System.in读取输入时,输入通常以回车键(\n)结尾。要去除输入中的换行符,可以使用trim()方法。

结论:

使用Java中的System.in可以方便地从控制台或其他输入源读取用户输入。通过使用InputStreamReader和BufferedReader类,我们可以有效地处理输入流,并根据需要转换输入的类型。在编写代码时,请牢记异常处理和输入的合法性验证,以确保程序的稳定性和安全性。