Java 中的输入输出流函数有哪些?
在 Java 中,输入输出流(Input/Output Stream)是处理数据的机制,允许数据从一个地方流动到另一个地方。这些流可用于读取或写入数据到不同的设备,如文件、网络连接、命令行终端等。在本篇文章中,我们将介绍 Java 中的一些常见的输入输出流函数。
一、InputStream 和 OutputStream 类
InputStream 和 OutputStream 是 Java 中最基本的输入输出类,所有的输入输出流类都是从这两个类派生而来的。它们分别提供了读取和写入字节流的方法。下面是一些常见的 InputStream 和 OutputStream 方法。
1. InputStream 方法
- int read():从输入流中读取下一个字节,返回-1表示已到达流的末尾。
- int read(byte b[]):从输入流中读取一定数量的字节,并将其存储到缓冲区 b 中,返回实际读取的字节数。
- int read(byte b[], int off, int len):从输入流中读取指定长度的字节,并将其存储到缓冲区 b 中的指定偏移量 off 处,返回实际读取的字节数。
- long skip(long n):跳过和丢弃输入流中给定数量的字节。
2. OutputStream 方法
- void write(int b):将指定字节写入输出流中。
- void write(byte b[]):将指定字节数组中的所有字节写入输出流中。
- void write(byte b[], int off, int len):将指定字节数组中的指定长度的字节写入输出流中。
- void flush():刷新输出流,强制任何缓冲的字节被写入输出流。
二、FileInputStream 和 FileOutputStream 类
FileInputStream 和 FileOutputStream 类用于读取和写入文件。它们是 InputStream 和 OutputStream 的子类,用于将字节写入文件或从文件中读取字节。使用 File 类来指定要读取或写入的文件的路径和名称。
1. FileInputStream 方法
- FileInputStream(File file):创建一个文件输入流以读取指定的 File 对象表示的文件。
- int available():返回剩余的可用字节数。
- void close():关闭该文件输入流,并释放与其关联的所有系统资源。
- int read():从输入流中读取下一个字节,返回-1表示已到达流的末尾。
- int read(byte[] b):从输入流中读取一定数量的字节,并将其存储到缓冲区 b 中,返回实际读取的字节数。
2. FileOutputStream 方法
- FileOutputStream(File file):创建一个文件输出流以写入指定的 File 对象表示的文件。
- void close():关闭该文件输出流,并释放与其关联的所有系统资源。
- void write(int b):将指定字节写入文件输出流中。
- void write(byte[] b):将指定字节数组中的所有字节写入文件输出流中。
三、ByteInputStream 和 ByteArrayOutputStream 类
ByteInputStream 和 ByteArrayOutputStream 类用于将字节流保存在内存中。它们提供了 read() 和 write() 方法来读取和写入字节,因此可以将输入源和输出目标视为内存中的字节数组。
1. ByteInputStream 方法
- ByteInputStream(byte[] buffer):创建一个用于读取给定缓冲区的 ByteInputStream 对象。
- int read():从输入流中读取下一个字节,返回-1表示已到达流的末尾。
- int read(byte[] b,int off, int len):从输入流中读取指定长度的字节,并将其存储到缓冲区 b 中的指定偏移量 off 处,返回实际读取的字节数。
2. ByteArrayOutputStream 方法
- ByteArrayOutputStream():创建一个新的字节数组输出流。
- int size():返回当前输出流中的字节数。
- void write(byte[] b,int off, int len):将指定字节数组中的指定长度的字节写入输出流中。
- byte[] toByteArray():将此输出流的缓冲区作为字节数组返回。
四、DataInputStream 和 DataOutputStream 类
DataInputStream 和 DataOutputStream 类允许您以 Java 的基本数据类型读写数据。DataInputStream 和 DataOutputStream 继承了 FilterInputStream 和 FilterOutputStream,这两个类将数据从一个数据流读取到另一个数据流。
1. DataInputStream 方法
- DataInputStream(InputStream in):创建一个读取来自指定输入流的原始数据类型的 DataInputStream。
- double readDouble():从输入流中读取一个双精度浮点数。
- float readFloat():从输入流中读取一个浮点数。
- int readInt():从输入流中读取一个整数。
- String readUTF():从输入流中读取字符串。
2. DataOutputStream 方法
- DataOutputStream(OutputStream out):创建一个将数据写入指定输出流的 DataOutputStream。
- void write(byte[] b,int off,int len):将指定字节数组中的指定长度的字节写入输出流中。
- void writeDouble(double value):将双精度浮点数写入输出流中。
- void writeFloat(float value):将浮点数写入输出流中。
- void writeInt(int value):将整数写入输出流中。
- void writeUTF(String str):将字符串写入输出流中。
总结
Java 提供了很多输入输出流函数,本篇文章中只介绍了一些常见的和基础的函数。输入输出流是 Java 编程中很重要的一部分,开发者需要对常见流的操作方法和应用场景熟悉掌握,才能更好地编写高效的 Java 程序并处理各种输入输出数据。
