这个类也是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(); } }
如上图所示