Java 输入流类
Java 输入流类
在本教程中,我们将通过一个示例了解 Java InputStream 类及其方法。
InputStream
java.io
的类 package 是一个抽象超类,表示字节的输入流。
从 InputStream
是一个抽象类,它本身没有用。但是,它的子类可以用来读取数据。
InputStream 的子类
为了使用InputStream
的功能 ,我们可以使用它的子类。其中一些是:
- 文件输入流
- ByteArrayInputStream
- 对象输入流
我们将在下一个教程中了解所有这些子类。
创建一个输入流
为了创建一个 InputStream,我们必须导入 java.io.InputStream
先打包。导入包后,我们可以通过以下方式创建输入流。
// Creates an InputStream
InputStream object1 = new FileInputStream();
在这里,我们使用 FileInputStream
创建了一个输入流 .这是因为 InputStream
是一个抽象类。因此我们不能创建 InputStream
的对象 .
注意 :我们也可以从 InputStream
的其他子类创建输入流 .
InputStream的方法
InputStream
类提供由其子类实现的不同方法。以下是一些常用的方法:
read()
- 从输入流中读取一个字节的数据read(byte[] array)
- 从流中读取字节并存储在指定的数组中available()
- 返回输入流中可用的字节数mark()
- 标记输入流中已读取数据的位置reset()
- 将控件返回到流中设置标记的点markSupported()
- 检查mark()
是否 和reset()
流中支持方法skips()
- 从输入流中跳过并丢弃指定数量的字节close()
- 关闭输入流
示例:使用 FileInputStream 的 InputStream
下面是我们如何实现 InputStream
使用 FileInputStream
类。
假设我们有一个名为 input.txt 的文件 内容如下。
This is a line of text inside the file.
让我们尝试使用 FileInputStream
读取这个文件 (InputStream
的子类 )。
import java.io.FileInputStream;
import java.io.InputStream;
class Main {
public static void main(String args[]) {
byte[] array = new byte[100];
try {
InputStream input = new FileInputStream("input.txt");
System.out.println("Available bytes in the file: " + input.available());
// Read byte from the input stream
input.read(array);
System.out.println("Data read from the file: ");
// Convert byte array into string
String data = new String(array);
System.out.println(data);
// Close the input stream
input.close();
} catch (Exception e) {
e.getStackTrace();
}
}
}
输出
Available bytes in the file: 39
Data read from the file:
This is a line of text inside the file
在上面的例子中,我们使用 FileInputStream
创建了一个输入流 班级。输入流与文件 input.txt 链接 .
InputStream input = new FileInputStream("input.txt");
从 input.txt 读取数据 文件,我们已经实现了这两个方法。
input.read(array); // to read data from the input stream
input.close(); // to close the input stream
要了解更多信息,请访问 Java InputStream(Java 官方文档)。
java