BufferedInputStream示例
BufferedOutputStream示例
BufferedReader實例
BufferedWriter示例
ByteArrayInputStream示例
Java ByteArrayOutputStream示例
Java CharArrayReader示例
Java CharArrayWriter示例
Java Console類示例
Java DataInputStream類型
Java DataOutputStream實例
Java Externalizable實例
Java File實例
FileDescriptor示例
Java FileInputStream示例
FileOutputStream示例
Java FilePermission示例
Java FileReader示例
Java FileWriter示例
Java FilterInputStream示例
Java FilterOutputStream示例
Java FilterReader示例
Java FilterWriter示例
Java文件系統
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:\