这个类也是NIO提供的一个获取文件属性的一个类
他有若干个属性视图,不同的视图可以获得或者设置不同类型的属性。还可以设置自定义属性
一般都是通过
Files.getFileAttributeView来获取不同的视图
public static void main(String[] args) {
Path path= Paths.get("IOStudy/src/StreamStudy/AttributeViewTest.java");
FileOwnerAttributeView fileOwnerAttributeView=Files.getFileAttributeView(path,FileOwnerAttributeView.class);
BasicFileAttributeView basicView= Files.getFileAttributeView(path,BasicFileAttributeView.class);
try {
BasicFileAttributes basicFileAttributes=basicView.readAttributes();
var time= basicFileAttributes.lastModifiedTime();
System.out.println(time);
System.out.println("创建时间是:"+new Date(basicFileAttributes.creationTime().toMillis()));
System.out.println("最后访问时间是:"+new Date(basicFileAttributes.lastAccessTime().toMillis()));
System.out.println("文件大小时:"+basicFileAttributes.size());
System.out.println(fileOwnerAttributeView.getOwner());
System.out.println(fileOwnerAttributeView.name());
UserDefinedFileAttributeView userView=Files.getFileAttributeView(path,UserDefinedFileAttributeView.class);
List<String> list= userView.list();
for(var li:list){
ByteBuffer buffer=ByteBuffer.allocate(userView.size(li));
userView.read(li,buffer);
buffer.flip();
String value= Charset.defaultCharset().decode(buffer).toString();
System.out.println(li+"--------->"+value);
}
userView.write("出版人",Charset.defaultCharset().encode("疯狂java讲义"));
userView.write("编著者",Charset.defaultCharset().encode("吴慧韬"));
DosFileAttributeView dosView=Files.getFileAttributeView(path,DosFileAttributeView.class);
DosFileAttributes dosFileAttributes=dosView.readAttributes();
System.out.println("文件是否隐藏:"+dosFileAttributes.isHidden());
System.out.println("文件是否只读:"+dosFileAttributes.isReadOnly());
dosView.setHidden(true);
dosView.setReadOnly(true);
} catch (IOException e) {
e.printStackTrace();
}
}
如上图所示