File類

我們要想實現IO操作,就必須知道硬盤上文件的表現形式 ,即Java的File類 
File:文件和目錄路徑名的抽象表示形式 
1.構造方法
File(String pathname):根據一個路徑得到File對象;
File(String parent,String child):根據一個目錄和一個子文件/子目錄得到File對象;
File(File parent,String child):根據一個父File對象和一個子文件/子目錄得到File對象;
2.創建功能
boolean createNewFile()  
 當且僅當不存在具有此抽象路徑名指定名稱的文件時,不可分地創建一個新的空文件。
boolean mkdir()  
創建此抽象路徑名指定的目錄。  
boolean mkdirs() 
創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。   
注意點:沒有目錄,就無法在該目錄下創建文件,基本是先mkdir,再createNewFile;
       沒有父目錄 ,無法創建子目錄,如D盤下如果不存在Test文件 夾,則無法mkdir D:\\Test\\Demo;(單級目錄) 
       創建多級目錄用mkdirs;
       創建文件時:先用mkdir和mkdirs創建目錄,再用createNewFile創建文件
3.刪除功能
boolean delete()  
刪除此抽象路徑名錶示的文件或目錄。  
注意點:Java中的刪除不走回收站;
       要刪除一個文件夾,文件夾內不能包含文件或文件夾
4.重命名功能
boolean renameTo(File dest)
路徑名相同就是改名;
路徑名不同就是改名並剪切 
5.判斷功能
boolean isDirectory()  測試此抽象路徑名錶示的文件是否是一個目錄。
boolean isFile()       測試此抽象路徑名錶示的文件是否是一個標準文件。
boolean isHidden()     測試此抽象路徑名指定的文件是否是一個隱藏文件。
boolean exists()       測試此抽象路徑名錶示的文件或目錄是否存在。  
boolean canRead()      測試應用程序是否可以讀取此抽象路徑名錶示的文件。
boolean canWrite()     測試應用程序是否可以修改此抽象路徑名錶示的文件。  
6.獲取功能
A.基本獲取功能
String getAbsolutePath() 返回此抽象路徑名的絕對路徑名字符串。 
String getPath()         將此抽象路徑名轉換爲一個路徑名字符串。  
String getName()         返回由此抽象路徑名錶示的文件或目錄的名稱。
long length()            返回由此抽象路徑名錶示的文件的長度。
long lastModified()      返回此抽象路徑名錶示的文件最後一次被修改的時間。   
B.高級獲取功能
String[] list()    返回一個字符串數組,這些字符串指定此抽象路徑名錶示的目錄中的文件和目錄。
File[] listFiles() 返回一個抽象路徑名數組,這些路徑名錶示此抽象路徑名錶示的目錄中的文件。
7.案例:輸出指定目錄下指定後綴的所有文件名,如輸出D盤目錄下所有的txt文件
思路:
A.封裝D盤目錄(變成File對象)
B.獲取該目錄下的所有文件、文件夾File數組
C.遍歷File數組,得到每一個File對象,然後判斷
D.是否是文件
      是:
            繼續判斷:是否以".txt"結尾
                        是:輸出文件名
                        否:不作處理
      否:不作處理                                                           
8.文件名稱過濾器(用到接口的概念,暫時沒學到,後續補充)  
package knowledge_basic_02;

import java.io.File;
import java.io.IOException;

public class FileDemo {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        //構造方法1
        File file1=new File("D:\\DEMO\\A.TXT");
        //構造方法2
        File file2=new File("D:\\DEMO","B.TXT");
        //構造方法3
        File file3=new File("D:\\DEMO");
        File file4=new File(file3,"C.TXT");
        //創建功能
        //mkdir:如果之前沒有此文件夾,則新建返回true;已有,返回false
        System.out.println("mkdir:"+file3.mkdir());//如果之前沒有此文件夾,則新建返回true
        //createNewFile:如果之前沒有此文件,則新建返回true;已有,返回false
        //此處產生一個編譯時異常IOException,需要try...catch,這裏直接throws到main方法了
        System.out.println("createNewFile:"+file1.createNewFile());
        //沒有目錄,無法在該目錄下創建文件:系統找不到指定的路徑。
        //File f=new File("D:\\TEST\\A.TXT");
        //  f.createNewFile();      
        //mkdirs:創建多級目錄
        File f=new File("D:\\AA\\BB\\CC\\DD");
        File f2=new File(f,"A.TXT");
        System.out.println("mkdirs:"+f.mkdirs());
        System.out.println("createNewFile:"+f2.createNewFile());
        //刪除功能
        System.out.println("delete:"+file1.delete()+" "+file3.delete());
        System.out.println("delete:"+f2.delete());
        //需求:刪除D:\\AA\\BB\\CC\\DD
        System.out.println(f.delete());
        File f3=new File("D:\\AA\\BB\\CC");
        System.out.println(f3.delete());
        File f4=new File("D:\\AA\\BB");
        System.out.println(f4.delete());
        File f5=new File("D:\\AA");
        System.out.println(f5.delete());
        //重命名功能
        System.out.println(file3.mkdir());
        System.out.println(file2.createNewFile());
        System.out.println(file2.renameTo(file4));
        //案例:輸出D盤目錄下,所有的txt文件名
        File ff=new File("D:\\");
        File[] fileArray=ff.listFiles();
        for(File file:fileArray)
        {
            if(file.isFile())
               if(file.getName().endsWith(".txt"))
                 System.out.println(file.getName());
        }

    }

}

mkdir:false
createNewFile:true
mkdirs:true
createNewFile:true
delete:true false
delete:true
true
true
true
true
false
false
false
myfile.txt
韓寒.txt
杯中窺人.txt

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