Java 输入输出流

ops/2025/3/1 9:47:28/

Java 输入输出流

本小节将介绍 Java 中的基本输入输出操作,涵盖输入输出的基本概念、流的概念、输入输出流的应用场景、File 类的使用以及 Java 提供的输入输出流相关 API。

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

1.1 基本概念

在计算机中,输入/输出(Input/Output,缩写为 I/O)是指信息处理系统(如计算机)与外界(可能是人类或其他信息处理系统)之间的通信。输入是系统接收的信号或数据,输出是从系统发送的信号或数据。

在 Java 中,输入和输出可以理解为 Java 程序与外部环境之间的数据交换。Java 程序可以从外部环境(如键盘、文件、网络等)读取数据,也可以将数据写入外部环境(如屏幕、文件、网络等)。

Java 提供了两个用于 I/O 操作的包:

  • java.io:较旧的 I/O 包,提供了基础的输入输出功能。
  • java.nio:较新的 I/O 包,提供了更高效的 I/O 操作,支持非阻塞 I/O 和文件系统操作。

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

在 Java 中,向屏幕输出内容非常简单,常用的方式有两种:

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

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

Java 提供了 java.util.Scanner 类来获取用户从键盘输入的内容。以下是一个简单的示例:

java">import java.util.Scanner;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("你好 " + name + ",欢迎来到!");// 关闭扫描器scanner.close();}
}

运行结果:

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

2. 什么是流(Stream)

在 Java 中,输入输出操作是通过流(Stream)来完成的。流是代表数据源或数据目标的对象。你可以从流中读取数据(输入流),也可以向流中写入数据(输出流)。流是一个有序的字节序列,数据通过流以先进先出的方式传输。

3. 输入输出流的应用场景

输入输出流在 Java 中应用广泛,常见的场景包括:

  • 文件读写:从文件中读取数据或将数据写入文件。
  • 网络通信:通过网络传输数据。
  • 数据复制:将一个文件的内容复制到另一个文件。
  • 上传文件:在 Web 开发中,上传文件到服务器时需要使用输入输出流。

4. File 类

在 Java 中,java.io.File 类用于表示文件和目录的路径名。通过 File 类,你可以对文件和目录进行创建、删除、重命名等操作。

4.1 实例化 File 对象

要实例化 File 对象,需要传入文件或目录的路径。File 类提供了多个构造方法:

java">File file1 = new File("C:/Users/Colorful/Desktop/imooc/Hello.java"); // 绝对路径
File file2 = new File("Hello.java"); // 相对路径

4.2 绝对路径和相对路径

  • 绝对路径:从根目录开始的完整路径,如 C:/Users/Colorful/Desktop/imooc/Hello.java
  • 相对路径:相对于当前工作目录的路径,如 ./Hello.java

4.3 判断对象是文件还是目录

File 类提供了两个方法来判断对象是文件还是目录:

java">File file = new File("C:/Users/Colorful/Desktop/imooc/Hello.java");
boolean isFile = file.isFile(); // 判断是否是文件
boolean isDirectory = file.isDirectory(); // 判断是否是目录

4.4 创建和删除目录

  • 创建目录:使用 mkdir()mkdirs() 方法创建目录。
  • 删除目录:使用 delete() 方法删除目录。
java">File dir = new File("C:/Users/Colorful/Desktop/imooc/codes");
if (!dir.exists()) {dir.mkdir(); // 创建目录
}if (dir.exists()) {dir.delete(); // 删除目录
}

4.5 创建和删除文件

  • 创建文件:使用 createNewFile() 方法创建文件。
  • 删除文件:使用 delete() 方法删除文件。
java">File file = new File("C:/Users/Colorful/Desktop/imooc/test.txt");
if (!file.exists()) {file.createNewFile(); // 创建文件
}if (file.exists()) {file.delete(); // 删除文件
}

5. InputStream 抽象类

InputStream 是 Java 中最基本的输入流抽象类,它是所有输入流的父类。常用的实现类包括 FileInputStreamByteArrayInputStream 等。

5.1 FileInputStream 实现类

FileInputStream 用于从文件中读取数据。以下是一个读取文件内容的示例:

java">import java.io.FileInputStream;
import java.io.IOException;public class FileInputStreamDemo {public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("C:/Users/Colorful/Desktop/imooc/Hello.txt");int n;while ((n = fis.read()) != -1) { // 读取文件内容System.out.print((char) n);}fis.close(); // 关闭流}
}

6. OutputStream 抽象类

OutputStream 是 Java 中最基本的输出流抽象类,它是所有输出流的父类。常用的实现类包括 FileOutputStreamByteArrayOutputStream 等。

6.1 FileOutputStream 实现类

FileOutputStream 用于向文件中写入数据。以下是一个写入文件内容的示例:

java">import java.io.FileOutputStream;
import java.io.IOException;public class FileOutputStreamDemo {public static void main(String[] args) throws IOException {FileOutputStream fos = new FileOutputStream("C:/Users/Colorful/Desktop/imooc/Hello.txt");fos.write(72); // 写入字符 'H'fos.write(72); // 写入字符 'H'fos.write(72); // 写入字符 'H'fos.close(); // 关闭流}
}

7. 小结

通过本小节的学习,我们了解了 Java 中输入输出的基本概念,掌握了如何使用 File 类操作文件和目录,以及如何使用 InputStreamOutputStream 进行文件的读写操作。输入输出流在 Java 中应用广泛,掌握这些基础知识对于后续的文件操作、网络编程等任务至关重要。


http://www.ppmy.cn/ops/162203.html

相关文章

Android实现漂亮的波纹动画

Android实现漂亮的波纹动画 本文章讲述如何使用二维画布canvas和camera、矩阵实现二、三维波纹动画效果(波纹大小变化、画笔透明度变化、画笔粗细变化) 一、UI界面 界面主要分为三部分 第一部分:输入框,根据输入x轴、Y轴、Z轴倾…

导游从业资格证有什么备考秘籍?

导游从业资格证备考秘籍与考试技巧​ 导游从业资格证考试包含笔试与面试,对考生知识储备与综合素养要求高。​ 笔试备考,初期通读教材,搭建导游基础知识、政策法规、导游业务等知识框架,明确各科目重点,如导游业务中的…

软件工程应试复习(考试折磨版)

针对学校软件工程考试,参考教材《软件工程导论(第6版)》1-8章 学习的艺术:不断地尝试,我一定会找到高效用的方法,让学习变成一门艺术,从应试备考中解救出我的时间同胞们。 好嘞!既然…

17 款电脑压缩工具详解及下载指南(2025 年最新版)

在数字时代,文件压缩是日常工作与生活中不可或缺的操作。无论是视频剪辑师压缩视频以便上传,还是普通用户节省存储空间,一款优质的压缩软件都能极大提升效率。本文将详细介绍 17 款热门电脑压缩软件,涵盖它们的特点、下载地址及适用场景,助你找到最适合自己的工具。 一、…

[随手笔记]C#保留小数防止四舍五入有效解决办法

private decimal 截断小数(decimal 原小数值, int 保留小数个数) { string 原小数转字符串值 原小数值.ToString(); try { if (原小数转字符串值.Contains(".")) { int 原小数总长度 原小数转字符串值.Length; …

leetcode0009 回文数 - easy

1 题目:回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如&#xff…

.pem文件是什么

.pem 文件通常是一个 Privacy-Enhanced Mail 格式的文件,它是一个常见的 证书文件 格式,可以存储加密密钥、证书或其他加密数据。最常见的用途是 SSH 密钥 和 SSL/TLS 证书。 在 SSH 使用中,.pem 文件一般是 私钥 文件,用于通过公…

服务器间免密登录

1. 生成SSH密钥对 在本地客户端生成SSH密钥对。生成密钥对命令为: ssh-keygen -t rsa 按回车键确认默认设置,生成的密钥对将保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。 2. 上传密钥对至需…