`
cucaracha
  • 浏览: 141801 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A8f3fa2f-18ce-3862-897a-5d2209197c90
Java NIO.2
浏览量:88116
7a076ba7-8ec8-3241-aa3c-67bb2f7856a2
Java EE 7 简明教...
浏览量:36817
社区版块
存档分类
最新评论

[NIO.2] 第十一篇 判断文件系统所支持属性视图

阅读更多
在访问文件属性之前,需要确保文件系统支持你所使用的属性视图。NIO.2 中可以获取文件系统所支持的属性视图名称列表,也可以通过 FileStore 类来检验文件存储是否支持某个属性视图。
通过调用 FileSystems.getDefault() 可得到当前的默认文件系统,调用 FileSystem.supportedFileAttributeViews() 方法可得到文件系统支持的属性视图列表,例如:

import java.nio.file.FileSystem; 
import java.nio.file.FileSystems; 
import java.util.Set; 
… 
FileSystem fs = FileSystems.getDefault();         
Set views = fs.supportedFileAttributeViews(); 
         
for (String view : views) { 
      System.out.println(view); 
} 


在 Windows 7 系统下,上面的代码将会打印:

acl 
basic 
owner 
user 
dos 


注意,basic 支持任何文件系统,因此在任何文件系统下运行,至少要打印出 basic。

也可以调用 FileStore.supportsFileAttributeView() 方法来判断文件存储是否支持某个属性视图,这个方法可传入 String 类型或 Class 类型。下面的例子演示了如何判断所有的文件存储是否都支持 basic 视图:

import java.nio.file.FileStore; 
import java.nio.file.FileSystem; 
import java.nio.file.FileSystems; 
import java.nio.file.attribute.BasicFileAttributeView; 
… 
FileSystem fs = FileSystems.getDefault(); 
for (FileStore store : fs.getFileStores()) { 
   boolean supported = store.supportsFileAttributeView(BasicFileAttributeView.class); 
   System.out.println(store.name() + " ---" + supported); 
} 


你也可以使用下面的代码得到 BNP.txt 文件所在的文件存储是否支持 basic 视图:

import java.io.IOException; 
import java.nio.file.FileStore; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
… 
Path path = Paths.get("C:/rafaelnadal/tournaments/2009", "BNP.txt"); 
 
try { 
    FileStore store = Files.getFileStore(path); 
    boolean supported = store.supportsFileAttributeView("basic"); 
    System.out.println(store.name() + " ---" + supported); 
} catch (IOException e) { 
    System.err.println(e); 
} 


文章来源:http://www.aptusource.org/2014/03/nio-2-view-supported-by-file-system/
0
2
分享到:
评论

相关推荐

    NIO.2 入门,第 2 部分: 文件系统 API

    在Java的NIO.2(New IO 2.0)框架中,文件系统API提供了更加高效和灵活的方式来处理文件和目录。本篇我们将深入探讨NIO.2中的几个关键概念和类,包括`Files`, `Path`, `FileAttributes`, `DirectoryWatcher`以及`...

    java NIO.zip

    Java NIO支持多种类型的通道,包括文件通道(FileChannel)、套接字通道(SocketChannel)和服务器套接字通道(ServerSocketChannel)等。通道可以同时进行读写操作,并且可以实现异步读写。 2. **缓冲区(Buffers...

    Java IO, NIO and NIO.2(Apress,2015)

    Java I/O, NIO, and NIO.2 is a power-packed book that accelerates your mastery of Java's various I/O APIs. In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes ...

    Java IO, NIO and NIO.2

    NIO.2还包含了许多其他的API扩展和改进,例如对符号链接的支持、文件属性访问、文件树遍历、WatchService等。 以上介绍了Java中的三种I/O机制。在实际开发中,它们各有适用场景。例如,Java IO适合进行传统的I/O...

    Pro Java 7 NIO.2.pdf

    根据提供的文件信息,“Pro Java 7 NIO.2.pdf”由Anghel Leonard于2011年编写,主要介绍了Java 7中的新输入/输出(NIO)API,特别是NIO.2(JSR 203)所带来的增强功能。这本书通过一系列章节详细讲解了如何使用NIO.2...

    nio.rar_FastCopyFile.java_NIO_UseFloatBuffer.java_java nio_文件锁

    Java NIO(New Input/Output)是Java标准库中提供的一种I/O模型,与传统的BIO( Blocking I/O)相比,NIO具有更好的性能和更高的灵活性。NIO的核心组件包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。...

    Java IO, NIO and NIO.2 原版pdf by Friesen

    New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn about concepts such as paths and Direct Memory Access. Chapters 2 through 5 ...

    Java NIO 中英文版 + Pro Java 7 NIO.2

    综上所述,Java NIO 和 NIO.2 提供了强大的工具和机制,使得开发者能够构建高并发、低延迟的系统。通过学习这两部分的内容,开发者可以更好地理解和利用Java平台提供的I/O能力,优化应用程序的性能。

    优雅的操作文件:java.nio.file 库介绍.pdf

    `java.nio.file`库的引入使得Java在文件操作方面有了质的飞跃,它简化了API,提高了性能,并提供了更多现代文件系统所需的功能。无论是处理小文件还是大文件,无论是单线程还是多线程环境,`java.nio.file`都能提供...

    Java I/O, NIO and NIO.2

    NIO.2,又称为New I/O 2或Java NIO 2,是在Java 7中引入的进一步扩展,主要增加了文件系统操作的支持,包括异步I/O操作、文件通道、文件锁定以及对符号链接的支持。AsynchronousFileChannel是NIO.2中新增的异步I/O...

    JDK1.7 之java.nio.file.Files 读取文件仅需一行代码实现

    JDK1.7 之 java.nio.file.Files 读取文件仅需一行代码实现 java.nio.file.Files 类是 JDK1.7 中引入的新的文件操作类,该类包含了许多有用的方法来操作文件。其中,Files.readAllBytes(Path) 方法可以将整个文件...

    java nio.pdf

    java nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava ...

    Apress.Pro.Java.7.NIO.2.2011

    《Apress.Pro.Java.7.NIO.2.2011》这本书专注于讲解Java 7中的非阻塞I/O(Non-blocking I/O, NIO)和NIO 2的高级特性,是Java开发者深入理解这一关键领域的重要参考资料。NIO在Java平台中扮演着至关重要的角色,特别...

    nio.zip_NIO_NewIO_NIO.c_java NIO chm_java nio

    缓冲区则用于存储和传输数据,它是NIO的关键组件,具有容量、位置、限制等属性,并支持多种操作,如读写、反转、清除等。选择器允许单个线程同时监控多个通道,当某个通道准备进行读写操作时,选择器会通知我们,...

    Java NIO.pdf

    Java NIO.pdf nio教程 Java NIO.pdf nio教程 java nio

    ProJava7NIO.2PDFBooks.pdf 英文原版

    Pro Java 7 NIO.2 – PDF Books

Global site tag (gtag.js) - Google Analytics