Java InputStream 教程显示了如何使用 Java 中的InputStream
类。
Java 流是来自源或目的地的数据流。 Java 流的一个很好的比喻是水从水龙头流入浴缸,然后又流入排水装置。 InputStream
和OutputStream
是对数据(例如 C 文件指针)的低级访问的抽象。
Java InputStream
InputStream
是读取数据的源。 流可以表示各种类型的源,包括磁盘文件,设备,其他程序和内存阵列。
流支持许多不同类型的数据,包括简单字节,原始数据类型,本地化字符和对象。
Java InputStream
子类
InputStream
是一个抽象类; 它是表示字节输入流的所有类的超类,包括AudioInputStream
,ByteArrayInputStream
,FileInputStream
,FilterInputStream
,ObjectInputStream
,PipedInputStream
和SequenceInputStream
。
Java InputStream
关闭
FileInputStream's
close()
方法关闭输入流,并释放与此流关联的所有系统资源。 在我们的示例中,我们使用 try-with-resources 语句,该语句确保在语句末尾关闭每个资源。
Java InputStream
读取
InputStream
使用以下读取方法读取字节:
read(byte[] b)
-从此输入流中读取最多b.length
个字节的数据到一个字节数组中。read(byte[] b, int off, int len)
-从此输入流中读取最多len
个字节的数据到一个字节数组中。read()
-从文件输入流中读取一个字节。
Java InputStream
读取文本
以下示例显示如何使用InputStream
读取文本文件。
thermopylae.txt
在示例中,我们使用此文本文件。
JavaInputStreamText.java
使用FileInputStream
,InputStreamReader
和BufferedReader
读取文本文件。
FileInputStream
是InputStream
的一种特殊形式,用于从文件中读取字节。
InputStreamReader
是从字节流到字符流的桥梁:它读取字节,并使用指定的字符集将其解码为字符。
BufferedReader
从字符输入流中读取文本,缓冲字符以有效读取字符,数组和行。
从缓冲读取器中按行读取数据。
Java InputStream
读取字节
InputStream
的读取方法读取字节。
JavaInputStreamBytes.java
该示例从 PNG 图像读取字节,并将字节以十六进制格式打印到控制台。
我们使用FileInputStream
从图像文件中读取字节。
使用read()
方法,我们将字节读入字节数组。
我们遍历数组并将字节以十六进制格式打印到控制台。
这是示例的部分示例输出。
从 URL 读取 Java InputStream
InputStream
允许从 URL 源读取数据。
JavaInputStreamURL.java
该示例将InputStream
打开到网页并读取其数据。
使用openStream()
方法创建 URL 的InputStream
。
这是输出。
Java InputStream
读取反序列化的数据
ObjectInputStream
读取先前使用ObjectOutputStream
写入的序列化数据。
Country.java
这是Country
bean。 我们将序列化和反序列化国家列表。
JavaObjectOutputStreamEx.java
该示例序列化对象列表。
国家列表被写入ObjectOutputStream
。
JavaInputStreamObjects.java
我们使用ObjectInputStream
读取序列化的数据。
Java InputStream
读取流序列
SequenceInputStream
代表一系列输入流。 它允许从多个有序流中读取。
JavaInputStreamSequence.java
该示例从三个FileInputStreams
中读取。
我们定义了三个输入流,并将这些流放入SequenceInputStreams
中。
我们使用read()
从流中读取数据。
在本教程中,我们介绍了 Java InputStream
类。