有人可以向我解释setURLStreamHandlerFactory
课程中URL
的目的和工作吗?
我有一个简单的代码片段,可以使用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);
}
}
任何人都可以向我解释静态块中语句的用途和工作吗?
答案 0 :(得分:2)
Java有一个默认类(sun.net.www.protocol.http.Handler),用于在调用URL.openStream()时处理流。静态块中的方法用Hadoop one替换了默认的java处理程序,这就是全部。