Java7 引入了新的输入/输出2(NIO.2)API并提供了一个新的I/O API。
它向Java类库添加了三个包:java.nio.file,java.nio.file.attribute和java.nio.file.spi。
文件系统
FileSystem类的对象表示Java程序中的文件系统。FileSystem对象用于执行两个任务:
Java程序和文件系统之间的接口。
一个工厂,它用于创建许多类型的文件系统相关对象和服务。
FileSystem对象与平台相关。
创建文件系统
要获取默认的FileSystem对象,需要使用FileSystems类的getDefault()静态方法,如下所示:
FileSystem fs = FileSystems.getDefault();
FileSystem由一个或多个FileStore组成。FileSystem的getFileStores()方法返回FileStore对象的迭代器(Iterator)。
FileSystem的getRootDirectories()方法返回Path对象的迭代器,它表示到所有顶级目录的路径。
FileSystem的isReadOnly()方法判断是否获得文件存储的只读访问权限。例
以下代码显示如何使用FileSystem对象。
import java.nio.file.FileStore;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
FileSystem fs = FileSystems.getDefault();
System.out.println("Read-only file system: " + fs.isReadOnly());
System.out.println("File name separator: " + fs.getSeparator());
for (FileStore store : fs.getFileStores()) {
printDetails(store);
}
for (Path root : fs.getRootDirectories()) {
System.out.println(root);
}
}
public static void printDetails(FileStore store) {
try {
String desc = store.toString();
String type = store.type();
long totalSpace = store.getTotalSpace();
long unallocatedSpace = store.getUnallocatedSpace();
long availableSpace = store.getUsableSpace();
System.out.println(desc + ", Total: " + totalSpace + ", Unallocated: "
+ unallocatedSpace + ", Available: " + availableSpace);
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码生成以下结果(不同的环境可能结果不太一样)。
Read-only file system: false
File name separator: \
System (C:), Total: 53694595072, Unallocated: 9739976704, Available: 9739976704
Software (D:), Total: 149264121856, Unallocated: 50061234176, Available: 50061234176
Documents (E:), Total: 149264121856, Unallocated: 75025080320, Available: 75025080320
Others (F:), Total: 147882274816, Unallocated: 57207463936, Available: 57207463936
C:\
D:\
E:\
F:\
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。