给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息。

 1 import java.text.SimpleDateFormat;
 2 import org.apache.hadoop.fs.*;
 3 
 4 public class E_RecursiveReadFile {
 5     public static void ReadFilesStatus(FileStatus fileinfo)
 6     {
 7         SimpleDateFormat format = new SimpleDateFormat(
 8                 "yyyy-MM-dd HH:mm:ss");
 9         System.out.println("file path :"+fileinfo.getPath());
10         System.out.println("file size :"+fileinfo.getLen()+"byte");
11         System.out.println("file permission :"+fileinfo.getPermission());
12         System.out.println("file create time :"+format.format(fileinfo.getModificationTime()));
13         System.out.println("------------------------------------------------");
14     }
15     public static void main(String arg[])
16     {
17         try{
18             Var_init var = new Var_init();
19             String s_path = "/user";
20             Path p_path = new Path(s_path);
21             RemoteIterator<LocatedFileStatus> remoteIterator = var.fs.listFiles(p_path, true);
22             System.out.println("------------------------------------------------");
23             while(remoteIterator.hasNext())
24             {
25                 var.fileinfo = remoteIterator.next();
26                 ReadFilesStatus(var.fileinfo);
27             }
28         }
29         catch(Exception e){
30             e.printStackTrace();
31         }
32     }
33 }
View Code

Var_init类参考 https://www.cnblogs.com/MiraculousB/p/13848744.html

原文地址:https://www.cnblogs.com/MiraculousB/p/13848828.html