- Java.io 包中的类
- Java.io - 首页
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- Java.io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io 包额外内容
- Java.io - 接口
- Java.io - 异常
- Java.io 包有用资源
- Java.io - 讨论
Java.io 包教程
Java - java.io 包
java.io包是Java SDK的标准包。它包含用于通过数据流进行系统输入和输出、序列化以及文件系统的类。此包非常有用,因为它提供流来处理来自各种来源的输入,例如键盘、文件系统、网络等。类似地,此包包含用于写入各种来源的流类。本参考将引导您了解java.io包中提供的简单而实用的方法。
导入 java.io 包
作为Java的内置包,我们不需要下载任何外部库即可使用java.io包及其所有类,可以使用以下语法导入:
import java.io.*;
在这里,我们使用*运算符导入java.io包中的所有类,现在程序中可以使用任何类。对于特定类,例如InputStream,我们可以使用以下语法导入类:
import java.io.InputStream;
为什么在Java程序中使用java.io包
Java.io包中的类包含流/读取器/写入器类,可以使用统一模式读取和写入各种来源。以下列表显示了java.io包中部分类别的类。
输入流 - 像ByteArrayInputStream、FileInputStream等输入流类有助于从诸如字节数组、文件之类的来源读取数据作为数据流,我们也可以使用缓冲来读取完整的内容。
输出流 - 类似地,我们有OutputStream类,例如ByteArrayOutputStream、FileOutputStream等,可用于写入几乎任何类型的目标。
错误流 - 错误流类似于OutputStream,用于将错误写入源。
读取器 - 读取器类是面向字符的,专门用于读取基于文本的内容。
写入器 - 同样,写入器类专门用于将基于文本的内容写入任何目标。
java.io包中的重要类
以下是java.io包中重要类的列表:
- BufferedInputStream - BufferedInputStream类为另一个输入流添加功能,即缓冲输入和支持mark和reset方法的能力。
- BufferedOutputStream - BufferedOutputStream类实现缓冲输出流。通过设置这样的输出流,应用程序可以将字节写入底层输出流,而无需为写入的每个字节都必须调用底层系统。
- BufferedReader - BufferedReader类从字符输入流读取文本,缓冲字符以便高效地读取字符、数组和行。
- BufferedWriter - BufferedWriter类将文本写入字符输出流,缓冲字符以便高效地写入单个字符、数组和字符串。
- ByteArrayInputStream - ByteArrayInputStream类包含一个内部缓冲区,其中包含可以从流中读取的字节。内部计数器跟踪read方法要提供的下一个字节。
- ByteArrayOutputStream - ByteArrayOutputStream类实现输出流,其中数据写入字节数组。缓冲区会随着向其写入数据而自动增长。
- CharArrayReader - CharArrayReader类实现字符缓冲区,可用作字符输入流。
- CharArrayWriter - CharArrayWriter类实现字符缓冲区,可用作Writer。缓冲区会随着向流中写入数据而自动增长。
- Console - Console类提供方法来访问与当前Java虚拟机关联的基于字符的控制台设备(如果有)。
- DataInputStream - DataInputStream类允许应用程序以与机器无关的方式从底层输入流读取原始Java数据类型。
- DataOutputStream - DataOutputStream类允许应用程序以可移植的方式将原始Java数据类型写入输出流。然后,应用程序可以使用数据输入流读取回数据。
- File - Java File类以抽象方式表示文件和目录路径名。此类用于创建文件和目录、文件搜索、文件删除等。File对象表示磁盘上的实际文件/目录。
- FileDescriptor - FileDescriptor类实例充当对底层特定于机器的结构的不透明句柄,该结构表示打开的文件、打开的套接字或其他字节源或接收器。
- FileInputStream - FileInputStream类从文件系统中的文件获取输入字节。可用的文件取决于主机环境。
- FileOutputStream - FileOutputStream类是用于将数据写入File或FileDescriptor的输出流。
- FilePermission - FilePermission类表示对文件或目录的访问权限。它由路径名和对该路径名有效的操作集组成。
- FileReader - FileReader类是用于读取字符文件的便捷类。
- FileWriter - FileWriter类是用于写入字符文件的便捷类。
- FilterInputStream - FilterInputStream类包含其他输入流,它将其用作其基本数据源,可能在此过程中转换数据或提供其他功能。
- FilterOutputStream - FilterOutputStream类是所有过滤输出流类的超类。
- FilterReader - FilterReader类用于读取过滤的字符流。
- FilterWriter - FilterWriter类用于写入过滤的字符流。
- InputStream - InputStream类是所有表示字节输入流的类的超类。需要定义InputStream子类的应用程序必须始终提供返回下一个输入字节的方法。
- InputStreamReader - InputStreamReader类是字节流到字符流的桥梁。它读取字节并使用指定的字符集将其解码为字符。
- LineNumberInputStream - LineNumberInputStream类是一个输入流过滤器,它提供了跟踪当前行号的附加功能。一行是字节序列,以回车符 ('\r')、换行符 ('\n') 或回车符后立即跟换行符结尾。
- LineNumberReader - LineNumberReader类是一个缓冲字符输入流,它跟踪行号。一行被认为以换行符 ('\n')、回车符 ('\r') 或回车符后立即跟换行符中的任何一个结束。
- ObjectInputStream - ObjectInputStream类反序列化以前使用ObjectOutputStream写入的原始数据和对象。
- ObjectInputStream.GetField - ObjectInputStream.GetField类提供对从输入流读取的持久字段的访问。
- ObjectOutputStream - ObjectOutputStream类将原始数据类型和Java对象的图形写入OutputStream。可以使用ObjectInputStream读取(重建)这些对象。
- Java.io - ObjectOutputStream.PutField - ObjectOutputStream.PutField类提供对要写入ObjectOutput的持久字段的编程访问。
- ObjectStreamClass −ObjectStreamClass 类是序列化的类描述符。它包含类的名称和 serialVersionUID。可以使用 lookup 方法查找/创建在此 Java 虚拟机中加载的特定类的 ObjectStreamClass。
- ObjectStreamField −ObjectStreamField 类是对可序列化类中可序列化字段的描述。ObjectStreamField 数组用于声明类的可序列化字段。
- OutputStream −OutputStream 类是所有表示字节输出流的类的超类。输出流接受输出字节并将它们发送到某个接收器。需要定义 OutputStream 子类的应用程序必须至少提供一个写入一个输出字节的方法。
- OutputStreamWriter −OutputStreamWriter 类是字符流到字节流的桥梁。写入其中的字符使用指定的字符集编码为字节。
- PipedInputStream −PipedInputStream 类是一个管道输入流,可以连接到管道输出流,然后管道输入流提供写入管道输出流的任何数据字节。
- PipedOutputStream −PipedOutputStream 类是一个管道输出流,可以连接到管道输入流以创建通信管道。
- PipedReader −PipedReader 类是管道字符输入流。
- PipedWriter −PipedWriter 类是管道字符输出流。
- PrintStream −PrintStream 类向另一个输出流添加功能,即方便地打印各种数据值的表示形式的能力。
- PrintWriter −PrintWriter 类将对象的格式化表示形式打印到文本输出流。
- PushbackInputStream −PushbackInputStream 类向另一个输入流添加功能,即“回推”或“取消读取”一个字节的能力。
- PushbackReader −PushbackReader 类是一个字符流读取器,允许将字符回推到流中。
- RandomAccessFile −RandomAccessFile 类文件类似于存储在文件系统中的大型字节数组。此类的实例同时支持对随机访问文件的读取和写入。
- Reader −Reader 类是用于读取字符流的抽象类。
- SequenceInputStream −SequenceInputStream 类表示其他输入流的逻辑串联。它从一个有序的输入流集合开始,从第一个流读取直到到达文件结尾,然后从第二个流读取,依此类推,直到到达最后一个包含的输入流的文件结尾。
- SerializablePermission −SerializablePermission 类用于可序列化权限。SerializablePermission 包含一个名称(也称为“目标名称”),但不包含操作列表;您要么拥有指定的权限,要么没有。目标名称是可序列化权限的名称。
- StreamTokenizer −StreamTokenizer 类获取输入流并将其解析为“标记”,允许一次读取一个标记。流标记器可以识别标识符、数字、带引号的字符串和各种注释样式。
- StringBufferInputStream −StringBufferInputStream 类允许应用程序创建一个输入流,其中读取的字节由字符串的内容提供。应用程序还可以使用 ByteArrayInputStream 从字节数组读取字节。此类仅使用字符串中每个字符的低八位。此类已被 Oracle 弃用,不应再使用。
- StringReader −StringReader 类是一个字符流,其源是字符串。
- StringWriter −StringWriter 类是一个字符流,它将其输出收集到一个字符串缓冲区中,然后可以使用该缓冲区构造一个字符串。关闭 StringWriter 没有效果。在流关闭后,可以调用此类中的方法,而不会生成 IOException。
- Writer −Writer 类是用于写入字符流的抽象类。
java.io 包的示例
练习以下示例以学习 java.io 包类的概念和用法。
java.io.ByteArrayInputStream 示例
以下程序说明了 ByteArrayInputStream 支持的几种方法 −
package com.tutorialspoint; import java.io.ByteArrayInputStream; import java.io.IOException; public class ByteStreamTest { public static void main(String[] args) throws IOException { byte[] buf = {65, 66, 67, 68, 69}; ByteArrayInputStream bais = null; try { // create new byte array input stream bais = new ByteArrayInputStream(buf); int b =0; // read till the end of the stream while((b = bais.read())!=-1) { // convert byte to character char c = (char)b; // print System.out.println("byte :"+b+"; char : "+ c); } System.out.print(bais.read()+" Reached the end"); } catch(Exception e) { // if I/O error occurs e.printStackTrace(); } finally { if(bais!=null) bais.close(); } } }
输出
让我们编译并运行上述程序,这将产生以下结果 −
byte :65; char : A byte :66; char : B byte :67; char : C byte :68; char : D byte :69; char : E -1 Reached the end
java.io.ByteArrayOutputStream 示例
以下程序说明了 ByteArrayOutputStream 支持的几种方法 −
package com.tutorialspoint; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; public class BufferedOutputStreamDemo { public static void main(String[] args) throws Exception { ByteArrayOutputStream baos = null; BufferedOutputStream bos = null; try { // create new ByteArrayOutputStream baos = new ByteArrayOutputStream(); // create new BufferedOutputStream with baos bos = new BufferedOutputStream(baos); // assign integer int b = 87; // write to stream bos.write(b); // force the byte to be written to baos bos.flush(); // convert ByteArrayOutputStream to bytes byte[] bytes = baos.toByteArray(); // prints the byte System.out.println(bytes[0]); } catch(IOException e) { // if I/O error occurs. e.printStackTrace(); } finally { // releases any system resources associated with the stream if(baos!=null) baos.close(); if(bos!=null) bos.close(); } } }
输出
让我们编译并运行上述程序,这将产生以下结果 −
87
java.io.PrintWriter 示例
以下程序说明了 PrintWriter 支持的几种方法 −
package com.tutorialspoint; import java.io.*; public class PrintWriterDemo { public static void main(String[] args) { String s = "Hello world."; try { // create a new writer PrintWriter pw = new PrintWriter(System.out); // print string pw.print(s); // change the line pw.println(); // print another string pw.print("This is an example."); // flush the writer pw.flush(); } catch (Exception ex) { ex.printStackTrace(); } } }
输出
让我们编译并运行上述程序,这将产生以下结果 −
Hello world. This is an example.
何时使用 java.io 包?
每当我们需要执行 I/O 操作时,都可以依赖 java.io 包中提供的 I/O 类。本参考是为初学者编写的,旨在帮助他们了解 Java.io 包中所有方法的基本功能。
先决条件
在开始练习本参考中提供的各种类型的示例之前,我假设您已经了解基本的 Java 编程。