[英]Does creating a File object create a physical file or touch anything outside the JVM?
Java類File具有4個構造函數:
File(File parent, String child)
從父抽象路徑名和子路徑名字符串創建一個新的File實例。
File(String pathname)
通過將給定的路徑名字符串轉換為抽象路徑名來創建新的File實例。
File(String parent, String child)
根據父路徑名字符串和子路徑名字符串創建一個新的File實例。
File(URI uri)
通過將給定文件URI轉換為抽象路徑名來創建新的File實例。
當我做:
File f=new File("myfile.txt");
是否創建磁盤上的物理文件? 還是JVM調用了OS,還是僅在JVM內部創建了一個對象?
不,創建一個新的File
對象不創建文件系統上的文件。 特別是,您可以創建引用不存在的路徑(甚至Windows中的驅動器)的File
對象。
構造函數確實要求底層文件系統表示形式執行某種規范化操作,但這並不要求文件存在。 作為規范化的示例,請考慮在Windows上運行的以下代碼:
File f = new File("c:\\a/b\\c/d.txt");
System.out.println(f);
此打印
c:\a\b\c\d.txt
顯示正斜杠已被標准化為反斜杠-但是a,b和c目錄實際上並不存在。 我認為規范化更多地與操作系統命名方案有關,而不是與任何實際資源有關—我不認為它甚至可以在磁盤上查看文件是否存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.