用“java.net.URL”和“org.apache.hadoop.fs.FsURLStreamHandlerFactory”编程完成输出HDFS中指定文件的文本到终端中
时间: 2023-11-29 11:05:29 浏览: 54
好的,以下是 Java 代码实现:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
public class HDFSReader {
public static void main(String[] args) throws IOException {
// 注册 Hadoop URL 处理工厂
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
// HDFS 文件路径
String hdfsPath = "hdfs://localhost:9000/path/to/file";
// 创建 URL 对象
URL url = new URL(hdfsPath);
// 打开输入流并读取文件内容
try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()))) {
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
}
}
```
这段代码中,我们使用 `URL` 类创建一个 HDFS 文件的 URL 对象,再通过 `openStream()` 方法打开输入流,并使用 `BufferedReader` 读取文件内容并输出到终端上。需要注意的是,我们在代码开头使用 `FsUrlStreamHandlerFactory` 注册了 Hadoop URL 处理工厂,这样才能正确地解析 HDFS 文件路径。