更新时间:2024-10-23 GMT+08:00

读取HDFS指定文件内容

功能简介

获取HDFS上某个指定文件的内容。过程为:

  1. 使用FileSystem实例的open方法获取读取文件的输入流。
  2. 使用该输入流读取HDFS的指定文件的内容。

在完成后,需关闭所申请资源。

代码样例

如下是读文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。

/**
 * 读文件
 *
 * @throws java.io.IOException
 */
private void read() throws IOException {
    String strPath = DEST_PATH + File.separator + FILE_NAME;
    Path path = new Path(strPath);
    FSDataInputStream in = null;
    BufferedReader reader = null;
    StringBuffer strBuffer = new StringBuffer();
    try {
        in = fSystem.open(path);
        reader = new BufferedReader(new InputStreamReader(in));
        String sTempOneLine;
        // write file
        while ((sTempOneLine = reader.readLine()) != null) {
            strBuffer.append(sTempOneLine);
        }
        LOG.info("result is : " + strBuffer.toString());
        LOG.info("success to read.");
    } finally {
        // make sure the streams are closed finally.
        IOUtils.closeStream(reader);
        IOUtils.closeStream(in);
    }
}