Java InputStream作用及主要方法说明

InputStream是Java中用于读取数据的抽象类。它是所有输入流类的超类,包括FileInputStream、ByteArrayInputStream、PipedInputStream等。InputStream类中定义了许多方法,包括read()、available()、close()等,用于读取数据、获取可读取的字节数、关闭流等操作。

以下是InputStream类中一些常用方法的使用示例:

// 创建FileInputStream对象
InputStream is = new FileInputStream("path/to/file");

// 读取单个字节
int b = is.read();

// 读取字节数组
byte[] buffer = new byte[1024];
int length = is.read(buffer);

// 获取可读取的字节数
int available = is.available();

// 关闭流
is.close();
  • read()方法:从输入流中读取下一个字节。如果没有更多的数据,则返回-1。此方法将阻塞,直到输入数据可用、检测到文件结束或抛出异常。
  • read(byte[] b)方法:从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。返回值是实际读取的字节数。如果没有更多的数据,则返回-1。此方法将阻塞,直到输入数据可用、检测到文件结束或抛出异常。
  • available()方法:返回可以从此输入流中读取(或跳过)的字节数的估计值,而不会被阻塞。此方法不会阻塞,但可能返回0。
  • close()方法:关闭此输入流并释放与该流关联的所有系统资源。此方法不会抛出异常。

除了InputStream类,Java中还有许多其他常用的IO流类,包括PrintStream/PrintWriter、PushbackInputStream/PushbackReader、SequenceInputStream和File等。