Java学习教程,从入门到精通,Java 输入和输出(10)

时间:2024-10-28 08:24:05

1、Java 输入和输出

在Java中,输入和输出(I/O)操作通常涉及与数据源(如键盘、文件、网络等)和目标(如控制台、文件、打印机等)之间的数据传输。Java标准库提供了丰富的类和方法来处理这些操作。

1.1、输入(Input)

Java中的输入操作通常通过java.util.Scanner类(用于从控制台读取输入)或java.io包中的类(用于从文件、网络等读取输入)来完成。

1.2、从控制台读取输入

使用Scanner类可以方便地从控制台读取各种类型的数据,如整数、浮点数、字符串等。

下面是一个简单的 Java 程序示例,它展示了如何进行基本的输入和输出操作。这个程序会提示用户输入他们的名字,然后输出一个问候信息。

import java.util.Scanner;

public class InputOutputExample {
    public static void main(String[] args) {
        // 创建一个 Scanner 对象来读取用户输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入他们的名字
        System.out.print("请输入你的名字: ");

        // 读取用户输入的名字
        String name = scanner.nextLine();

        // 输出问候信息
        System.out.println("你好, " + name + "!");

        // 关闭 Scanner 对象
        scanner.close();
    }
}

1.3、程序说明:

  1. 导入 Scanner 类

    import java.util.Scanner;
    

    Scanner 类是 Java 中用于读取用户输入的类。

  2. 创建 Scanner 对象

    Scanner scanner = new Scanner(System.in);
    

    这里我们创建了一个 Scanner 对象 scanner,它使用标准输入流 System.in 来读取用户输入。

  3. 提示用户输入

    System.out.print("请输入你的名字: ");
    

    使用 System.out.print 方法来输出提示信息,而不是 System.out.println,因为 System.out.print 不会换行,这样用户输入的内容就会紧跟在提示信息后面。

  4. 读取用户输入

    String name = scanner.nextLine();
    

    使用 scanner.nextLine() 方法读取用户输入的一行文本,并将其存储在 String 变量 name 中。

  5. 输出问候信息

    System.out.println("你好, " + name + "!");
    

    使用 System.out.println 方法输出问候信息,并将用户输入的名字嵌入其中。

  6. 关闭 Scanner 对象

    scanner.close();
    

    在完成输入操作后,关闭 Scanner 对象以释放相关资源。

运行程序:

  1. 将上述代码复制到一个名为 InputOutputExample.java 的文件中。

  2. 打开命令行或终端,导航到包含 InputOutputExample.java 文件的目录。

  3. 编译 Java 程序:

    javac InputOutputExample.java
    
  4. 运行编译后的 Java 程序:

    java InputOutputExample
    

程序将提示你输入名字,然后输出一个包含你名字的问候信息。

当然可以!下面我将提供一些具体的 Java 输入和输出案例,每个案例都展示了不同的应用场景。

案例 1:计算两个数的和

import java.util.Scanner;

public class SumOfTwoNumbers {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入第一个数
        System.out.print("请输入第一个数: ");
        double num1 = scanner.nextDouble();

        // 提示用户输入第二个数
        System.out.print("请输入第二个数: ");
        double num2 = scanner.nextDouble();

        // 计算两个数的和
        double sum = num1 + num2;

        // 输出结果
        System.out.println("两个数的和是: " + sum);

        scanner.close();
    }
}

案例 2:判断一个数是奇数还是偶数

import java.util.Scanner;

public class OddOrEven {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入一个整数
        System.out.print("请输入一个整数: ");
        int number = scanner.nextInt();

        // 判断是奇数还是偶数
        if (number % 2 == 0) {
            System.out.println(number + " 是偶数。");
        } else {
            System.out.println(number + " 是奇数。");
        }

        scanner.close();
    }
}

案例 3:菜单驱动的简单计算器

import java.util.Scanner;

public class SimpleCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;

        do {
            // 显示菜单
            System.out.println("简单计算器菜单:");
            System.out.println("1. 加法");
            System.out.println("2. 减法");
            System.out.println("3. 乘法");
            System.out.println("4. 除法");
            System.out.println("5. 退出");

            // 提示用户选择操作
            System.out.print("请选择操作: ");
            choice = scanner.nextInt();

            // 根据用户选择执行相应操作
            switch (choice) {
                case 1:
                    System.out.print("请输入第一个数: ");
                    double num1 = scanner.nextDouble();
                    System.out.print("请输入第二个数: ");
                    double num2 = scanner.nextDouble();
                    System.out.println("结果是: " + (num1 + num2));
                    break;
                case 2:
                    System.out.print("请输入第一个数: ");
                    num1 = scanner.nextDouble();
                    System.out.print("请输入第二个数: ");
                    num2 = scanner.nextDouble();
                    System.out.println("结果是: " + (num1 - num2));
                    break;
                case 3:
                    System.out.print("请输入第一个数: ");
                    num1 = scanner.nextDouble();
                    System.out.print("请输入第二个数: ");
                    num2 = scanner.nextDouble();
                    System.out.println("结果是: " + (num1 * num2));
                    break;
                case 4:
                    System.out.print("请输入第一个数: ");
                    num1 = scanner.nextDouble();
                    System.out.print("请输入第二个数: ");
                    num2 = scanner.nextDouble();
                    if (num2 != 0) {
                        System.out.println("结果是: " + (num1 / num2));
                    } else {
                        System.out.println("除数不能为零!");
                    }
                    break;
                case 5:
                    System.out.println("退出程序。");
                    break;
                default:
                    System.out.println("无效选择,请重新选择。");
            }

        } while (choice != 5);

        scanner.close();
    }
}

案例 4:读取文件内容并输出到控制台

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String[] args) {
        String filePath = "example.txt"; // 替换为你的文件路径

        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.out.println("读取文件时出错: " + e.getMessage());
        }
    }
}

在这个案例中,我们使用了 BufferedReaderFileReader 来读取文件内容,并将其逐行输出到控制台。注意,你需要将 filePath 替换为你实际要读取的文件路径。
这些案例涵盖了基本的输入和输出操作,包括从控制台读取用户输入、进行简单的数学计算、显示菜单并根据用户选择执行操作,以及从文件中读取内容并输出到控制台。