HDFS读取数据:FileSystem.open() 创建的是什么流?
HDFS读取数据:FileSystem.open() 创建的是什么流?
在Hadoop分布式文件系统(HDFS)中,读取数据的第一步是使用 FileSystem.open() 方法打开目标文件。 该方法返回一个代表文件输入流的对象,但它究竟是什么类型的流呢?
答案是: A、输入流
更具体地说,FileSystem.open() 方法返回的是一个 FSDataInputStream 对象,它是 java.io.InputStream 的子类,专门用于从HDFS读取数据。
让我们来更深入地了解一下:
-
输入流 (InputStream): Java IO系统中用于读取数据的基本抽象类。
FSDataInputStream继承自它,意味着它具备所有输入流的基本功能,例如读取字节、读取字节数组等。 -
缓冲流 (BufferedInputStream): 对输入流进行包装,提供缓冲功能,提高读取效率。 虽然
FSDataInputStream本身不直接是缓冲流,但可以通过BufferedInputStream对其进行包装以提升性能。 -
数据流 (DataInputStream): 提供读取基本数据类型(如 int、long、float 等)的方法。
FSDataInputStream并不直接继承自它,但可以通过DataInputStream对其进行包装,方便读取特定数据类型。 -
输出流 (OutputStream): 用于写入数据的流,与读取数据无关。
总结: FileSystem.open() 方法返回的是一个 FSDataInputStream 对象,它是一个专门用于从HDFS读取数据的输入流。
原文地址: https://www.cveoy.top/t/topic/f0PH 著作权归作者所有。请勿转载和采集!