📅  最后修改于: 2023-12-03 15:16:02.414000             🧑  作者: Mango
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读取字节流时将非常有用。