📅  最后修改于: 2023-12-03 15:15:56.208000             🧑  作者: Mango
InputStream是Java IO库中的最常用的类之一,它代表了一个输入字节流,可以读取二进制数据。简单而言,它可以让您从输入源中读取数据,例如文件、网络连接、管道等。InputStream类是一个抽象类,因此不能直接使用它,您必须使用其子类来处理具体的输入源。一下是InputStream类的一些重要特点:
以下是InputStream类的常用构造函数:
InputStream is = new FileInputStream("filename.txt");
在这个例子中,我们使用FileInputStream类来创建一个输入流。该输入流从名称为“filename.txt”的文件中读取数据。
您还可以使用ByteArrayInputStream类创建一个InputStream,该InputStream将数据读取到字节数组中:
InputStream is = new ByteArrayInputStream(bytes);
InputStream提供了许多方法来读取数据。以下是一些最常用的方法:
int read(byte[] b) throws IOException
: 从输入流读取一些字节数,并将它们存储到缓冲区数组b中。int read(byte[] b, int off, int len) throws IOException
: 从输入流读取最多len字节的数据,并将其存储在偏移量为off的缓冲区数组b中。long skip(long n) throws IOException
: 从输入流中跳过并丢弃n个字节数据。int available() throws IOException
: 返回可以从该输入流中读取的估计字节数。void close() throws IOException
: 关闭此输入流并释放与该流关联的所有系统资源。以下是一个简单的Java程序,演示如何使用InputStream读取一个文本文件:
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
InputStream is = new FileInputStream("filename.txt");
int c;
while ((c = is.read()) != -1) {
System.out.print((char) c);
}
is.close();
} catch (IOException e) {
System.out.println("IOException:" + e);
}
}
}
在这个例子中,我们使用FileInputStream创建一个InputStream对象,该对象读取名称为“filename.txt”的文件。然后使用while循环,以每次读取一个字节的形式,从输入流中读取数据,并将其打印到控制台。最后,我们使用close()方法显式关闭InputStream。
InputStream是Java IO库中最常用的类之一。它提供了许多方法,可用于读取数据、跳过数据和关闭输入流等。InputStream可以用来读取任何类型的输入数据,尤其是二进制数据。在日常编程中,InputStream类通常与FileInputStream、ByteArrayInputStream等类一起使用。