1. 程式人生 > 其它 >IO流之File類

IO流之File類

對於File類來說,建立物件就是建立檔案或者資料夾,有3個構造器,絕對路徑或者相對路徑,第一種,直接填寫路徑,第二種,parent,chlid,建立一個上層檔案,跟下層檔案,第三種直接在一個物件下建立檔案

對於常用的方法來說:getName,isFile,等等,

* 1:String getAbsolutePath:獲取絕對路徑
* 2:String getPath:獲取路徑
* 3:String getName:獲取名稱
* 4:String getParent:獲取上層檔案目錄,若無,返回null
* 5:long length:獲取檔案位元組數
* 6:long lastModified:獲取最後一次修改的時間

* 7:String[] list:獲取指定目錄下的所有檔案或檔案目錄的名稱陣列
* 8:File[] listFiles:獲取指定目錄下的所有檔案或者檔案目錄的File陣列
****************
  1 /**
  2  * File類的使用
  3  * 1:File類的一個物件就是一個檔案或者一個資料夾
  4  * 2:File類宣告在java.io包下
  5  * 3:建立物件有3種構造器
  6  *
  7  *
  8  */
  9 public class FileTest {
 10     //如何建立File類的例項
 11     @Test
 12     public
void test1(){ 13 //構造器1:直接建立一個檔案 14 File file=new File("hello.txt");//相對路徑:相當於當前的module下 15 File file4=new File("E:\\"); 16 System.out.println(file4.list()); 17 File file1=new File("E:\\hello\\DAY08\\src\\IO\\hello.txt"); 18 //絕對路徑:包含碟符的檔案路徑 19 System.out
.println(file); 20 //構造器2:建立資料夾,兩個引數 21 File file2=new File("E:\\hello","E:\\hello\\DAY08"); 22 System.out.println(file2); 23 //構造器3:在已有的一個檔案下建立檔案 24 File file3=new File(file2,"hpp.txt"); 25 System.out.println(file3); 26 } 27 /** 28 * 常用的方法; 29 * 1:String getAbsolutePath:獲取絕對路徑 30 * 2:String getPath:獲取路徑 31 * 3:String getName:獲取名稱 32 * 4:String getParent:獲取上層檔案目錄,若無,返回null 33 * 5:long length:獲取檔案位元組數 34 * 6:long lastModified:獲取最後一次修改的時間 35 * 7:String[] list:獲取指定目錄下的所有檔案或檔案目錄的名稱陣列 36 * 8:File[] listFiles:獲取指定目錄下的所有檔案或者檔案目錄的File陣列 37 * File類的使用: 38 * 1:File類的一個物件就代表了一個檔案或者資料夾 39 * 2:File類中只涉及到檔案的建立刪除,重新命名,修改時間,檔案大小等方法,未涉及到檔案內容的讀取與寫入 40 * 如果需要讀寫檔案內容必須用到IO流 41 * 3:後續File類的物件通常會作為引數傳遞到流的構造器這,指明讀寫的"終點". 42 * 43 * 44 */ 45 @Test 46 public void test2(){ 47 File file=new File("E:\\hello","E:\\hello\\DAY08\\hpp.txt"); 48 File file1=new File("E:\\hi.txt"); 49 File file2=new File("hello.txt"); 50 System.out.println(file.getAbsoluteFile()); 51 System.out.println(file2.getPath()); 52 System.out.println(file.getName()); 53 System.out.println("***********************"); 54 System.out.println(file.getParent()); 55 System.out.println(file.length());//沒有建立檔案的情況下,是不存在檔案長度的, 56 System.out.println(file1.length()); 57 System.out.println(file2.length());//在day08下面建立了檔案所以有長度位元組數 58 System.out.println(new Date(file2.lastModified())); 59 } 60 @Test 61 public void test3(){ 62 File file=new File("E:\\"); 63 String[]list=file.list();//list方法返回一個String型別的檔案目錄陣列 64 for (String obj:list){ 65 System.out.println(obj); 66 } 67 System.out.println("****************"); 68 File[]listFiles=file.listFiles(); 69 for (File obj1:listFiles){//listFiles方法返回File型的檔案目錄陣列 70 System.out.println(obj1); 71 } 72 } 73 @Test 74 public void test4(){ 75 //renameTo方法:將一個檔案改名剪下到另一個目錄下, 76 // 要保證file是相對路徑,代表必須先在此模組下建立一個檔案 77 File file=new File("E:\\hello\\hello.txt");//絕對路徑不可以轉移 78 File file1=new File("E:\\hello\\DAY08\\hpp.txt"); 79 System.out.println(file.renameTo(file1)); 80 } 81 @Test 82 public void test5(){ 83 //File類的判斷方法 84 File file=new File("hello.txt"); 85 System.out.println(file.isHidden()); 86 System.out.println(file.isDirectory()); 87 System.out.println(file.canRead()); 88 System.out.println(file.canWrite()); 89 System.out.println(file.exists()); 90 System.out.println(file.isFile()); 91 } 92 @Test 93 public void test6() throws IOException{ 94 /** 95 * boolean createNewFile:建立檔案,若檔案存在則不建立,返回false; 96 * boolean mkdir:建立檔案目錄,如果此檔案存在,就不建立,如果上層目錄不存在也不建立 97 * boolean mkdirs:建立檔案目錄,如果此檔案存在不建立,不存在的情況下 98 * 不管上層檔案目錄存不存在,一併建立,如果上層檔案存在,只建立最下面一個目錄, 99 * 如果上層資料夾不存在,那不管上層有多少層資料夾都全部建立,返回true 100 */ 101 //建立硬碟中對應的檔案或目錄 102 File file=new File("hi.txt"); 103 if (!file.exists()){//檔案不存在 104 file.createNewFile(); 105 System.out.println("建立成功"); 106 }else {//檔案存在 107 file.delete(); 108 System.out.println("刪除成功"); 109 } 110 System.out.println("*****************"); 111 //檔案目錄的建立 112 File file1=new File("E:\\hello\\hpp\\huang\\1323"); 113 if (file1.mkdir()){ 114 System.out.println("mkdir建立成功"); 115 }else if (file1.mkdirs()){ 116 System.out.println("mkdirs建立成功!"); 117 } 118 file1.delete();//刪除檔案 119 } 120 @Test 121 public void test7(){ 122 File file=new File("D:\\Chrome");//建立目錄物件 123 listPrint(file); 124 } 125 //列印當前檔案目錄下的所有檔案,使用遞迴 126 public void listPrint(File file){ 127 if (file.isFile()){//當前目錄下如果是一個檔案,直接輸出 128 System.out.println(file); 129 }else {//是一個資料夾 130 File[]files=file.listFiles(); 131 for (File f:files){ 132 listPrint(f);//遞迴呼叫自己 133 } 134 } 135 } 136 }