32 文件IO流(一)

32 文件IO流(一)

1.解決了什麼樣子的問題

如果你想在網頁上顯示節日快樂信息,你每定義一次就打印一次會很麻煩,所以文件IO流的產生使得改信息只需要改裏面的文件即可

2.File文件

2.1核心

​ 實例化的對象可以用來指代文件與文件夾

2.2 路徑(文件所在地址)

​ A.相對路徑()

​ 相對路徑指的相對於給定的目錄的路徑

​ 如:day01/abc.txt

​ B.絕對路徑(帶根盤符的)

​ 如:C:\Users\我的天空\Desktop

​ 具體如何書寫等有時間再去自己研究,現階段夠用了

3.重寫Object類的常用方法(clone未重寫)

3.1 File類中的toString方法

public String toString() {
        return getPath();
    }
//返回的是提供構造方法初始化的地址    

3.2 File中的equals方法(public boolean equals(Object obj))

調用equals方法判斷兩個對象是否相等,都先要判斷是否爲調用者的對象的實例化子類,若是則調用compareTo方法(必須實現Comparable接口)

//若是子類,且地址一樣,必然返回true,否則(不爲零的數字==0)必然返回false,
//equals源碼如下:
 public boolean equals(Object obj) {
        if ((obj != null) && (obj instanceof File)) {
            return compareTo((File)obj) == 0;
        }
        return false;
    }
 //Compare two abstract pathnames lexicographically
按字典順序比較兩個抽象路徑名(compareTo方法調用compare方法的解釋)
//字典順序是從每個字符串的首字母進行英文字母表順序的比較,
//如果第一個字符串的首字母在英文字母表中順序靠前,則返回次序的差值(負數)
//如果第一個字符串的首字母在英文字母表中順序靠後,則返回次序的差值(正數),
//若一樣則繼續往下比,如果全部一樣則是返回0
//如:  "abc"   "add"
   //方法調用者爲"abc",實參值爲"add",則返回值爲(b的字母表順序-d的字母表順序=-2)
  //方法調用者爲"add",實參值爲"add",則返回值爲(0,所有字母都相等)
  //方法調用者爲"add",實參值爲"abc",則返回值爲(d的字母表順序-b的字母表順序=2)
 String str="abc";
 String str01="add";
 System.out.println(str.compareTo(str01));
 System.out.println(str01.compareTo(str01));
 System.out.println(str01.compareTo(str));

4.常用操作

判斷File對象是否存在

System.out.println(file.exists());

4.2 判斷File對象是否是文件(標準文件)

System.out.println(file.isFile());
//文件與文件夾不是一個東西,文件夾指的的目錄

4.3 判斷File對象是否是文件夾 (即目錄)

System.out.println(file.isDirectory());

4.4 判斷File對象是否是絕對路徑

System.out.println(file.isAbsolute());

4.5 創建文件

System.out.println(file.createNewFile());
//createNewFile只能創建文件    

4.6 創建目錄--->創建父文件存在的文件夾

System.out.println(file.mkdir());

4.7 創建目錄----->創建文件夾,若路徑文件夾不存在,則自動創建父類文件夾

System.out.println(file.mkdirs()); 

4.8 獲取文件名

System.out.println(file.getName());

4.9 獲取父文件名

System.out.println(file.getParent());

4.10 文件長度

System.out.println(file.length());        

4.11 剪切

 file.renameTo(new File("abc.txt"));
 //把文件移動到指定位置

4.12 獲取該文件目錄下面的所有文件與文件夾(返回值爲String[])

//list方法只針對於文件夾,返回值爲String類型的數組

若File對象是文件,則返回null,空指針是不能夠調用方法的

String[] lists = file.list();
for (String list : lists) {
    System.out.println(list);
}
//僅僅會出現所有文件以及文件夾的名字(無前面的地址信息)

4.13 獲取該文件目錄下面的所有文件與文件夾(返回值爲File[])

//listFiles只對於文件夾,返回值爲File[],(除開打印文件名外,還可以做一系列操作)

若File對象是文件,則返回null,(空指針是不能夠調用方法的)

File[] files = file.listFiles();
for (File file1:files){
   System.out.println(file1.getName());
}
//會出現所有文件的絕對路徑(若想只有文件名,如上面所示調用getName()方法)

4.14 得到初始化時賦值的地址信息

 System.out.println(file1.getPath());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章