AttributeView的用法

这个类也是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();
        }

    }

 如上图所示

原文地址:https://www.cnblogs.com/tomato190/p/12669477.html