HDFS之FileStatus

  任何文件系统的一个重要特性都是提供其目录结构浏览和检索它所存文件和目录相关信息的功能。FileStatus对象封装了文件系统中文件和目录的元数据,包括文件的长度、块大小、备份数、修改时间、所有者以及权限等信息。

  FileStatus对象由FileSystem的getFileStatus()方法获得,调用该方法的时候要把文件的Path传进去。

  例子:打印输出某个文件的所有信息

 1 package com.hdfs;
 2 
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.fs.FSDataInputStream;
 5 import org.apache.hadoop.fs.FSDataOutputStream;
 6 import org.apache.hadoop.fs.FileStatus;
 7 import org.apache.hadoop.fs.FileSystem;
 8 import org.apache.hadoop.fs.FileUtil;
 9 import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
10 import org.apache.hadoop.fs.Path;
11 import org.apache.hadoop.io.IOUtils;
12 import org.apache.hadoop.util.Progressable;
13 
14 public class HdfsTest1 {
15     //显示文件所有信息
16     public static void fileInfo(String path) throws IOException{
17         Configuration conf = new Configuration();
18         FileSystem fs = FileSystem.get(conf);
19         Path p = new Path(path);
20         //FileStatus对象封装了文件的和目录的额元数据,包括文件长度、块大小、权限等信息
21         FileStatus fileStatus = fs.getFileStatus(p);
22         System.out.println("文件路径:"+fileStatus.getPath());
23         System.out.println("块的大小:"+fileStatus.getBlockSize());
24         System.out.println("文件所有者:"+fileStatus.getOwner()+":"+fileStatus.getGroup());
25         System.out.println("文件权限:"+fileStatus.getPermission());
26         System.out.println("文件长度:"+fileStatus.getLen());
27         System.out.println("备份数:"+fileStatus.getReplication());
28         System.out.println("修改时间:"+fileStatus.getModificationTime());
29     }
30     public static void main(String[] args) throws IOException {
31         fileInfo("/user/hadoop/aa.mp4");
32     }
33 
34 }

输出结果为:

文件路径:hdfs://master:9000/user/hadoop/aa.mp4
块的大小:67108864
文件所有者:hadoop:supergroup
文件权限:rw-r--r--
文件长度:76805248
备份数:3
修改时间:1371484526483

转载于:https://www.cnblogs.com/liuling/p/2013-6-18-01.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值