任何人都可以向我解释 URL
类中 setURLStreamHandlerFactory
的用途和工作方式吗?
我有一个简单的代码片段可以使用 Java 中的 URL
类连接到我的 HDFS,我已经在 hadoop 权威指南中完成了它。
这是我写的代码:
public class HadoopFileSystemConnect {
static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) throws IOException {
URL url = new URL("hdfs://localhost:9000/employee_data.txt");
InputStream in = url.openStream();
IOUtils.copyBytes(in, System.out,4096,false);
}
}
任何人都可以向我解释静态 block 中语句的目的和工作方式吗?
最佳答案
Java 有一个默认类 (sun.net.www.protocol.http.Handler),用于在您调用 URL.openStream() 时处理流。静态 block 中的方法将默认的 java 处理程序替换为 Hadoop 一个,仅此而已。
关于java - URL 类中 setURLStreamHandlerFactory 的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844098/