当前位置: 首页 > article >正文

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

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 替换为你实际要读取的文件路径。
这些案例涵盖了基本的输入和输出操作,包括从控制台读取用户输入、进行简单的数学计算、显示菜单并根据用户选择执行操作,以及从文件中读取内容并输出到控制台。


http://www.kler.cn/news/367758.html

相关文章:

  • Vue 3 的组件式开发(3)
  • C++11新特性相关内容详细梳理
  • React基础使用教程
  • node集成redis (教学)
  • 【LeetCode:263. 丑数 + 数学】
  • 【Visual Studio】下载安装 Visual Studio Community 并配置 C++ 桌面开发环境的图文教程
  • 校园建筑用电安全监测装置 电气火灾监测预防设备功能介绍
  • ASP.NET Core8.0学习笔记(二十三)——EF Core自引用
  • 快速搭建 Spring Boot 3 + Prometheus + Grafana 实现实时监控
  • Z-BlogPHP显示错误Undefined array key 0 (set_error_handler)的解决办法
  • 【Chapter 2】因果推断中的随机实验与统计学复习
  • 基于flask+vue框架的的法律咨询信息系统的设计与实现5m1le(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 隨筆 Kafka 拦截器概述
  • 如何选择适合的有序集合数据结构?
  • 瑞吉外卖之com.fasterxml.jackson.dataformat.cbor.CBORFactor相关报错
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-21
  • 基于Kratos+ent+postgreSQL构建简单的CRUDapi
  • 嵌入式软开项目——电子手环开发——学习引导和资料网址
  • 基于R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析
  • linux运维100讲练习:第7集
  • 【~/.bashrc】linux系统添加环境变量
  • Linux练习_2账户管理
  • IPV6扩展头部
  • Verilog:参数(parameter)的使用
  • 嵌入式——STM32外设应用
  • 抖音列表页采集-爬虫部分(2)