📜  Java.io.InputStream类(1)

📅  最后修改于: 2023-12-03 15:16:02.414000             🧑  作者: Mango

Java.io.InputStream类

Java.io.InputStream类是Java标准库中的一个输入流抽象类,用于从各种数据源(例如文件、网络套接字、数据库等)读取字节数据。

基本用法

使用InputStream类需要先创建一个InputStream实例,可以使用FileInputStream读取文件内容,例如:

InputStream inputStream = new FileInputStream("filename.txt");

接下来可以使用read()方法读取字节数据,例如:

int data = inputStream.read();
while (data != -1) {
    System.out.print((char) data);
    data = inputStream.read();
}

以上代码会逐个字节读取文件内容并输出。

方法

InputStream类提供了许多其他方法来读取字节数据,例如:

  • int read(byte[] b):从输入流中读取一定量的字节,并将其存储在缓冲区数组b中。
  • int available():返回估计剩余可以从输入流中读取的字节数。
  • long skip(long n):从输入流中跳过n个字节数。
  • void close():关闭输入流并释放与之相关联的任何系统资源。

有些InputStream的子类也支持mark()和reset()方法来标记和重置当前位置,允许回溯数据流。但是,标记可能不支持无限期地保留,因此在使用之前必须首先检查markSupported()方法是否为true。

示例

以下示例会读取一个图片文件并将其写入新文件:

InputStream inputStream = new FileInputStream("inputImage.jpg");
OutputStream outputStream = new FileOutputStream("outputImage.jpg");
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
    outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
总结

Java.io.InputStream类是Java中用于从数据源中读取字节流的基本抽象类。它提供了许多用于读取字节的方法,并且由其子类可以根据不同的数据源提供更多功能。了解InputStream的知识,在Java读取字节流时将非常有用。