Java IO详解
一、IO简介
1. 概念
Java IO (Input/Output) 是 Java 编程语言对输入和输出(I/O)进行封装的一组类和接口,Java IO 提供了输入流和输出流的抽象,可以使开发者以相同的方式读写各种不同类型的数据,如文本、图像、音频、视频等等。
Java IO 的基本操作都是围绕着流(Stream)对象展开的,流是一个抽象的概念,它是一系列连续的字节或字符,数据从一个端点流入,从另一个端点流出。Java IO 从两个维度来区分流,即字节流和字符流。
-
字节流(Byte Stream):以字节为单位进行数据传输,一次处理一个字节,适合于处理二进制数据,如图像、音频、视频等等。
-
字符流(Character Stream):以字符为单位进行数据传输,一次处理一个字符,适合于处理文本数据,如字符文件、字符串等等。
Java IO 主要包括以下几个包:
- java.io:提供了各种用于读取和写入数据的类和接口。
- java.nio:提供了对新输入/输出 (NIO) 的支持。
- java.nio.channels:提供了可扩展的、非阻塞 I/O 操作,包括 Selector、Channel 等。
- java.nio.charset:提供了在字节和 Unicode 字符之间进行编码和解码的类和接口。
在 Java IO 中,常用的类和接口包括:
- InputStream/OutputStream:用于读取和写入字节数据。
- Reader/Writer:用于读取和写入字符数据。
- InputStreamReader/OutputStreamWriter:将字节流转换为字符流或将字符流转换为字节流。
- FileReader/FileWriter:用于读取和写入字符文件。
- FileInputStream/FileOutputStream:用于读取和写入字节文件。
- BufferedReader/BufferedWriter:带有缓存的字符流,可以提高读写效率。
- ByteArrayInputStream/ByteArrayOutputStream:用于读取和写入内存中的字节流。
- CharArrayReader/CharArrayWriter:用于读取和写入内存中的字符流。
- DataInputStream/DataOutputStream:用于读写基本数据类型和字符串。
- PrintStream/PrintWriter:用于打印各种数据类型到输出流。
除此之外,Java IO 还提供了一些其他的类和接口,如 ObjectInputStream/ObjectOutputStream、PipedInputStream/PipedOutputStream、ZipInputStream/ZipOutputStream 等等。
总之,Java IO 提供了一组强大的类和接口,可以方便地读取和写入各种不同类型的数据。
本文来自博客园,作者:手可敲星辰脚驾七彩云,转载请注明原文链接:https://www.cnblogs.com/arek/p/17255353.html,谢谢!