要求
编程实现一个类“MyFSDataInputStream”,该类继承“org.apache.hadoop.fs.FSDataInputStream”,要求如下:实现按行读取HDFS中指定文件的方法“readLine()”,如果读到文件末尾,则返回空,否则返回文件一行的文本。
class MyFSDataInputStream extends FSDataInputStream {
BufferedReader br; // 内置一个缓存读取
public MyFSDataInputStream(InputStream in) {
super(in);
this.br = new BufferedReader(new InputStreamReader(in));
}
public String readline() throws IOException {
String content = null;
// 读取一行,如果不为空,则返回读取内容
if((content = this.br.readLine()) != null) {
return content;
}else {
return null;
}
}
}
使用
MyFSDataInputStream mf = new MyFSDataInputStream(getIt);
String c = mf.readline();
System.out.println(c);
c = mf.readline();
System.out.println(c);
c = mf.readline();
System.out.println(c);