本小节将会介绍基本输入输出的 Java 标准类,通过本小节的学习,你将了解到什么是输入和输入什么是流;输入输出流的应用场景,File类的使用,什么是文件,Java 提供的输入输出流相关 API 等内容。

1. 什么是输入和输出(I / O)

1.1 基本概念

输入/输出这个概念,对于计算机相关专业的同学并不陌生,在计算中,输入/输出Input / Output,缩写为 I / O)是信息处理系统(例如计算机))与外界(可能是人类或其他信息处理系统)之间的通信。输入是系统接收的信号或数据,输出是从系统发送的信号或数据。

那么在 Java 中,什么是输入和输出呢?要理解这个概念,可将 Java 平台视作一个系统。Java 平台是一个孤立的系统,系统之外的所有东西都是它的环境。系统与其环境之间的交互是一种双向对话。系统要么从其环境接收消息,要么将其消息传递给环境。当系统接收到消息时,将其称为输入,与之相反的是输出。

本小节将介绍 Java 的基本输入和输出,包括从键盘读取文本输入,将文本输出到屏幕以及从文件系统读取/写入文件。

Java 提供了两个用于 I / O 的包:较旧的java.io包(不支持符号链接)和较新的java.nio(“new io”)包,它对java.nio.file的异常处理进行了改进。

1.2 简单的 Java 输出——打印内容到屏幕

一直以来,我们都在向屏幕输出内容以验证我们编写的代码逻辑。向屏幕输出内容非常简单,可以由以下两种方式来完成:

// 打印 Hello World,不换行
System.out.print("Hello World");
// 打印 Hello Java,并换行
System.out.println("Hello Java");

1.3 简单的 Java 输入——从键盘输入

java.util包下的Scanner类可用于获取用户从键盘输入的内容,我们在Java Scanner 类 这一小节已经介绍过具体使用,实例如下:

import java.util.Scanner;

/**
 * @author colorful@TaleLin
 */
public class ScannerDemo {
    public static void main(String[] args) {
        // 创建扫描器对象
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的姓名:");
        // 可以将用户输入的内容扫描为字符串
        String name = scanner.nextLine();
        // 打印输出
        System.out.println("你好 ".concat(name).concat(" ,欢迎来到慕课网!"));
        // 关闭扫描器
        scanner.close();
    }
}

运行结果:

请输入您的姓名:
Colorful
你好 Colorful ,欢迎来到慕课网!

2. 什么是流(Stream)

Java 中最基本的输入/输入是使用流来完成的。

流是代表数据源和数据目标的对象,怎么理解这句话呢?简单来说,可以读取作为数据源的流,也可以写入作为数据目标的流。Java中的流是长度不确定的有序字节序列,它是一连串流动的字符,是以先进先出的方式发送信息的通道。