1、使用URL读取数据
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
public class readURL {
static{
//使URL可以解析hdfs,这个方法在一个jvm中只能调用一次
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) {
InputStream in = null;
try {
in = new URL("hdfs://localhost:9000/user/readme.txt").openStream();
IOUtils.copyBytes(in, System.out, 4096,false);//第三个参数为复制缓冲区大小,第四个参数复制后是否关闭数据流
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeStream(in);
}
}
}
上面程序中的static语句块如故不写就如出现以下错误: