在访问文件属性之前,需要确保文件系统支持你所使用的属性视图。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/
分享到:
相关推荐
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 NIO.zip
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 源码适合初学者,里面包括通道和Buffer的基本适用,以及文件锁,和内存文件映射等等
这是一本介绍java io以及nio相关知识的书,书中对知识的讲解通俗易懂,是学习java nio以及复习java io相关知识的必备书籍。注意:本书为英文版!!!
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 ...
缺乏对现代文件系统的支持:只提供的基础的文件操作,不支持很多现代的文件系统 API 不够直观:文件操作的 API 设计相对较为复杂和冗长,使用体验感很差 对于大文件处理和并发性能不够:简单的 I/O 模型,没有充分...
Java NIO.pdf Java NIO.pdf Java NIO.pdf Java NIO.pdf Java NIO.pdf Java NIO.pdf
Apress.Pro.Java.7.NIO.2.2011
蔚来-NIO.US-新车上市,蔚来可期.pdf
Pro Java 7 NIO.2 – PDF Books
This book covers all the important aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many exercises and case studies ...
Java NIO,Ron Hitchens 著,中文版 裴小星 译,Pro Java 7 NIO.2,Anghel Leonard 著,pdf文字版带书签,无安全限制
Pro Java 7 NIO.2.pdf,2011 by Anghel Leonard
本类,是专门为了处理大文件... 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理。 由于对于本程序 116个字节以上的行才有意义,所以 在next实现方法中,有对 116 长度的判断,否则返回 null
JavaNIO.pdf
This book covers all the important aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many exercises and case studies ...
用java.nio.*进行网络编程
找了好久,终于找到了,java刷新同步获取网络资源