URL类中setURLStreamHandlerFactory的用途

时间:2013-09-17 07:45:07

标签: java hadoop hdfs

有人可以向我解释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);
    }
}

任何人都可以向我解释静态块中语句的用途和工作吗?

1 个答案:

答案 0 :(得分:2)

Java有一个默认类(sun.net.www.protocol.http.Handler),用于在调用URL.openStream()时处理流。静态块中的方法用Hadoop one替换了默认的java处理程序,这就是全部。