您好,登錄后才能下訂單哦!
這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)File類如何正確的在Java中使用 ,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
這是整個File簡單使用的代碼:
1 package com.tianjh; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 /** 7 * Created on 2020/12/10 8 * File類的基本使用 9 * 10 */ 11 public class FileDemo { 12 public static void main(String[] args) { 13 String dirname = "D:/Demo"; 14 // 實例化一個File對象 15 File f1 = new File(dirname); 16 17 // 1. 遍歷指定目錄之下的所有文件 18 // 判斷f1對象是否是一個目錄 19 if (f1.isDirectory()) { 20 System.out.println("Directory of " + dirname); 21 String[] s = f1.list(); 22 // 遍歷s數(shù)組,取出數(shù)組中的元素進行判斷 23 for (int i = 0; i < s.length; i++) { 24 File f = new File(dirname + "/" + s[i]); 25 if (f.isDirectory()) { 26 System.out.println(s[i] + " is a directory"); 27 } else { 28 System.out.println(s[i] + " is a file"); 29 } 30 } 31 } else { 32 // 不是一個目錄 33 System.out.println(dirname + " is not a directory"); 34 } 35 // expected output: 36 // Directory of D:/Demo 37 // BufferedInputStream.java is a file 38 // BufferedOutputStream.java is a file 39 // childFile is a directory 40 41 /* 42 * 2. 測試指定文件是否可執(zhí)行 43 * 測試應用程序是否可以執(zhí)行此抽象路徑名表示的文件 44 * true: 當且僅當存在抽象路徑名,并允許應用程序執(zhí)行該文件時 45 */ 46 System.out.println(dirname + " allowed to execute? " + f1.canExecute()); 47 // expected output: D:/Demo allowed to execute? true 48 49 50 /* 51 * 3. 測試指定文件是否可讀取 52 * 測試應用程序是否可以讀取由此抽象路徑名表示的文件 53 * true: 當且僅當此抽象路徑名指定的文件存在并可由應用程序讀取時; 54 * false: 與true相反 55 */ 56 System.out.println(dirname + " allowed to read? " + f1.canRead()); 57 // expected output: D:/Demo allowed to read? true 58 59 /* 60 * 4. 測試指定文件是否可寫 61 * 測試應用程序是否可以修改由此抽象路徑名表示的文件 62 * true: 當且僅當文件系統(tǒng)實際上包含由該抽象路徑名表示的文件并且允許應用程序?qū)懭朐撐募r; 63 * false: 與true相反 64 */ 65 System.out.println(dirname + " allowed to write? " + f1.canWrite()); 66 // expected output: D:/Demo allowed to write? true 67 68 /* 69 * 5. 比較抽象路徑名和參數(shù)抽象路徑名是否相等 70 * 比較兩個抽象的路徑名字典是否相等 等于零則相等,小于零則抽象路徑名字典小于參數(shù)路徑字典,大于則相反 71 * 比較規(guī)則按照字典順序進行排序 72 */ 73 String s1 = "C:/Boot"; 74 // “D:/Demo” 與 "C:/Boot" 比較 75 System.out.println(f1.compareTo(new File(s1))); 76 // expected output: 1 77 String s2 = "D:/Deoo"; 78 // “D:/Demo” 與 "D:/Deoo" 比較 79 System.out.println(f1.compareTo(new File(s2))); 80 // expected output: -2 81 82 83 /* 84 * 6. 創(chuàng)建一個新文件 85 * 當且僅當具有該名稱的文件尚不存在時,原子地創(chuàng)建一個由該抽象路徑名命名的新的空文件 86 * true: 如果命名文件不存在并被成功創(chuàng)建; 87 * false: 如果命名文件已經(jīng)存在 88 */ 89 File f3 = new File("/Boot"); 90 try { 91 System.out.println("/Boot file is created? " + f3.createNewFile()); 92 // expected output: /Boot file is created? false 93 } catch (IOException e) { 94 e.printStackTrace(); 95 } 96 97 /* 98 * 7. 創(chuàng)建一個目錄 99 * 創(chuàng)建由此抽象路徑名命名的目錄 100 */ 101 String dirnames = "D:/tmp/boot"; 102 File f4 = new File(dirnames); 103 // 創(chuàng)建一個文件夾,成功則返回true,失敗則返回false。 104 // 失敗表明File對象指定的路徑已經(jīng)存在,或者由于整個路徑還不存在,該文件夾不能被創(chuàng)建。 105 System.out.println("create mkdir is " + f4.mkdir()); 106 // expected output: create mkdir is true 107 108 109 /* 110 * 8. 創(chuàng)建一個目錄,包括其不存在的父級目錄 111 * 創(chuàng)建一個文件夾和它的所有父文件夾 失敗表明File對象指定的路徑已經(jīng)存在 112 */ 113 System.out.println("create mkdirs is " + f4.mkdirs()); 114 // expected output: create mkdirs is false 115 116 117 /* 118 * 9. 刪除文件或者目錄 119 * 刪除由此抽象路徑名表示的文件或目錄 120 * true當且僅當文件或目錄被成功刪除時; false否則 121 */ 122 System.out.println(dirnames + " deleted is " + f4.delete()); 123 // expected output: D:/tmp/boot deleted is true 124 125 126 /* 127 * 10. 取得抽象路徑的名稱 128 * 取到抽象路徑名表示的文件或目錄的名稱 129 */ 130 System.out.println("getName is " + f1.getName()); 131 // expected output: getName is Demo 132 133 134 /* 135 * 11. 取得抽象路徑的字符串 136 * 獲得由抽象路徑名轉(zhuǎn)換為路徑名字符串 137 */ 138 System.out.println("getPath is " + f1.getPath()); 139 // expected output: getPath is D:\Demo 140 141 /* 142 * 12. 取得抽象路徑的絕對路徑 143 * 獲得此抽象路徑名的絕對路徑名字符串 144 */ 145 System.out.println("Absolute Path is " + f1.getAbsolutePath()); 146 // expected output: Absolute Path is D:\Demo 147 148 149 /* 150 * 13. 判斷抽象路徑指定的文件或目錄是否存在 151 * 測試此抽象路徑名表示的文件或目錄是否存在 152 * true: 當且僅當存在由此抽象路徑名表示的文件或目錄時; 153 * false: 與true相反 154 */ 155 System.out.println(f1.exists() ? "exist" : "not"); 156 // expected output: exist 157 } 158 159 } FileDemo.Java
1、遍歷指定目錄之下的所有文件( 遍歷" D:/Demo "中的所有文件及目錄)
D磁盤中Demo目錄的結(jié)果如下所示:
示例代碼:
String dirname = "D:/Demo"; // 實例化一個File對象 File f1 = new File(dirname); // 1. 遍歷指定目錄之下的所有文件 // 判斷f1對象是否是一個目錄 if (f1.isDirectory()) { System.out.println("Directory of " + dirname); String[] s = f1.list(); // 遍歷s數(shù)組,取出數(shù)組中的元素進行判斷 for (int i = 0; i < s.length; i++) { File f = new File(dirname + "/" + s[i]); if (f.isDirectory()) { System.out.println(s[i] + " is a directory"); } else { System.out.println(s[i] + " is a file"); } } } else { // 不是一個目錄 System.out.println(dirname + " is not a directory"); } // expected output: // Directory of D:/Demo // BufferedInputStream.java is a file // BufferedOutputStream.java is a file // childFile is a directory
輸出結(jié)果:
2、測試指定文件是否可執(zhí)行
/* * 2. 測試指定文件是否可執(zhí)行 * 測試應用程序是否可以執(zhí)行此抽象路徑名表示的文件 * true: 當且僅當存在抽象路徑名,并允許應用程序執(zhí)行該文件時 */ System.out.println(dirname + " allowed to execute? " + f1.canExecute()); // expected output: D:/Demo allowed to execute? true
3、測試指定文件是否可讀取
/* * 3. 測試指定文件是否可讀取 * 測試應用程序是否可以讀取由此抽象路徑名表示的文件 * true: 當且僅當此抽象路徑名指定的文件存在并可由應用程序讀取時; * false: 與true相反 */ System.out.println(dirname + " allowed to read? " + f1.canRead()); // expected output: D:/Demo allowed to read? true
4、測試指定文件是否可寫
/* * 4. 測試指定文件是否可寫 * 測試應用程序是否可以修改由此抽象路徑名表示的文件 * true: 當且僅當文件系統(tǒng)實際上包含由該抽象路徑名表示的文件并且允許應用程序?qū)懭朐撐募r; * false: 與true相反 */ System.out.println(dirname + " allowed to write? " + f1.canWrite()); // expected output: D:/Demo allowed to write? true
樣例2、3、4的結(jié)果可參考Demo 的屬性
5、比較抽象路徑名和參數(shù)抽象路徑名是否相等,根據(jù)字典順序進行比較
/* * 5. 比較抽象路徑名和參數(shù)抽象路徑名是否相等 * 比較兩個抽象的路徑名字典是否相等 等于零則相等,小于零則抽象路徑名字典小于參數(shù)路徑字典,大于則相反 * 比較規(guī)則按照字典順序進行排序 */ String s1 = "C:/Boot"; // “D:/Demo” 與 "C:/Boot" 比較 System.out.println(f1.compareTo(new File(s1))); // expected output: 1 String s2 = "D:/Deoo"; // “D:/Demo” 與 "D:/Deoo" 比較 System.out.println(f1.compareTo(new File(s2))); // expected output: -2
結(jié)果:
6、創(chuàng)建一個新文件
/* * 6. 創(chuàng)建一個新文件 * 當且僅當具有該名稱的文件尚不存在時,原子地創(chuàng)建一個由該抽象路徑名命名的新的空文件 * true: 如果命名文件不存在并被成功創(chuàng)建; * false: 如果命名文件已經(jīng)存在 */ File f3 = new File("/Boot"); try { System.out.println("/Boot file is created? " + f3.createNewFile()); // expected output: /Boot file is created? false } catch (IOException e) { e.printStackTrace(); }
結(jié)果:
7、創(chuàng)建一個目錄
/* * 7. 創(chuàng)建一個目錄 * 創(chuàng)建由此抽象路徑名命名的目錄 */ String dirnames = "D:/tmp/boot"; File f4 = new File(dirnames); // 創(chuàng)建一個文件夾,成功則返回true,失敗則返回false。 // 失敗表明File對象指定的路徑已經(jīng)存在,或者由于整個路徑還不存在,該文件夾不能被創(chuàng)建。 System.out.println("create mkdir is " + f4.mkdir()); // expected output: create mkdir is true
結(jié)果:
8、創(chuàng)建一個目錄,包括其不存在的父級目錄,因為在上列中創(chuàng)建了對應的目錄文件,所有mkdirs創(chuàng)建就返還false
/* * 8. 創(chuàng)建一個目錄,包括其不存在的父級目錄 * 創(chuàng)建一個文件夾和它的所有父文件夾 失敗表明File對象指定的路徑已經(jīng)存在 */ System.out.println("create mkdirs is " + f4.mkdirs()); // expected output: create mkdirs is false
9、刪除文件或者目錄(刪除前面創(chuàng)建的/tmp路徑下的boot)
/* * 9. 刪除文件或者目錄 * 刪除由此抽象路徑名表示的文件或目錄 * true當且僅當文件或目錄被成功刪除時; false否則 */ System.out.println(dirnames + " deleted is " + f4.delete()); // expected output: D:/tmp/boot deleted is true
結(jié)果:
10、取得抽象路徑的名稱
/* * 10. 取得抽象路徑的名稱 * 取到抽象路徑名表示的文件或目錄的名稱 */ System.out.println("getName is " + f1.getName()); // expected output: getName is Demo
結(jié)果:
11、取得抽象路徑的字符串
/* * 11. 取得抽象路徑的字符串 * 獲得由抽象路徑名轉(zhuǎn)換為路徑名字符串 */ System.out.println("getPath is " + f1.getPath()); // expected output: getPath is D:\Demo
結(jié)果:
12、取得抽象路徑的絕對路徑
/* * 12. 取得抽象路徑的絕對路徑 * 獲得此抽象路徑名的絕對路徑名字符串 */ System.out.println("Absolute Path is " + f1.getAbsolutePath()); // expected output: Absolute Path is D:\Demo
結(jié)果:
13、判斷抽象路徑指定的文件或目錄是否存在
/* * 13. 判斷抽象路徑指定的文件或目錄是否存在 * 測試此抽象路徑名表示的文件或目錄是否存在 * true: 當且僅當存在由此抽象路徑名表示的文件或目錄時; * false: 與true相反 */ System.out.println(f1.exists() ? "exist" : "not"); // expected output: exist
結(jié)果:
上述就是小編為大家分享的File類如何正確的在Java中使用 了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。