1.获取文件详细信息
/**
* 获取文件详细信息
*/
@Test
public void fileDetail() throws IOException {
//参数解读:参数1:路径;参数2:是否递归
RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);
//遍历文件
while(listFiles.hasNext()){
LocatedFileStatus fileStatus = listFiles.next();
System.out.println("==========" + fileStatus.getPath() + "==========");
System.out.println(fileStatus.getPermission());
System.out.println(fileStatus.getOwner());
System.out.println(fileStatus.getGroup());
System.out.println(fileStatus.getLen());
System.out.println(fileStatus.getModificationTime());
System.out.println(fileStatus.getReplication());
System.out.println(fileStatus.getBlockSize());
System.out.println(fileStatus.getPath().getName());
//获取块信息
BlockLocation[] blockLocations = fileStatus.getBlockLocations();
System.out.println(Arrays.toString(blockLocations));
}
}
2.判断是文件还是文件夹
/**
* 判断是文件还是文件夹
*/
@Test
public void testFile() throws IOException {
FileStatus[] listStatus = fs.listStatus(new Path("/"));
for(FileStatus status : listStatus){
if(status.isFile()){
System.out.println("文件:" + status.getPath().getName());
}else{
System.out.println("目录:" + status.getPath().getName());
}
}
}
本文提供了一个使用Java API操作HDFS的示例,包括如何获取文件详细信息及判断文件类型的方法。通过具体代码展示了如何读取文件权限、所有者、组、长度等属性,并获取文件的块位置信息。
3499

被折叠的 条评论
为什么被折叠?



