? java.io.File類:檔案和檔案目錄路徑的抽象表示形式,與平臺無關
? File 能新建、洗掉、重命名檔案和目錄,但 File 不能訪問檔案內容本身,
如果需要訪問檔案內容本身,則需要使用輸入/輸出流,
? 想要在Java程式中表示一個真實存在的檔案或目錄,那么必須有一個File對
象,但是Java程式中的一個File物件,可能沒有一個真實存在的檔案或目錄,
? File物件可以作為引數傳遞給流的構造器


常用方法
? File 類的獲取功能
? public String getAbsolutePath():獲取絕對路徑
? public String getPath() :獲取路徑
? public String getName() :獲取名稱
? public String getParent():獲取上層檔案目錄路徑,若無,回傳null
? public long length() :獲取檔案長度(即:位元組數),不能獲取目錄的長度,
? public long lastModified() :獲取最后一次的修改時間,毫秒值
? public String[] list() :獲取指定目錄下的所有檔案或者檔案目錄的名稱陣列
? public File[] listFiles() :獲取指定目錄下的所有檔案或者檔案目錄的File陣列
? File 類的重命名功能
? public boolean renameTo(File dest):把檔案重命名為指定的檔案路徑
? File 類的判斷功能
? public boolean isDirectory():判斷是否是檔案目錄
? public boolean isFile() :判斷是否是檔案
? public boolean exists() :判斷是否存在
? public boolean canRead() :判斷是否可讀
? public boolean canWrite() :判斷是否可寫
? public boolean isHidden() :判斷是否隱藏



/**
* File類的使用
*
* 1. File類的一個物件,代表一個檔案或一個檔案目錄(俗稱:檔案夾)
* 2. File類宣告在java.io包下
* 3. File類中涉及到關于檔案或檔案目錄的創建、洗掉、重命名、修改時間、檔案大小等方法,
* 并未涉及到寫入或讀取檔案內容的操作,如果需要讀取或寫入檔案內容,必須使用IO流來完成,
* 4. 后續File類的物件常會作為引數傳遞到流的構造器中,指明讀取或寫入的"終點".
* @author CH
* @create 2021 下午 4:05
*/
/*
1.如何創建File類的實體
File(String filePath)
File(String parentPath,String childPath)
File(File parentFile,String childPath)
2.
相對路徑:相較于某個路徑下,指明的路徑,
絕對路徑:包含盤符在內的檔案或檔案目錄的路徑
3.路徑分隔符
windows:\\
unix:/
*/
@Test public void test1(){ //構造器1 File file1 = new File("hello.txt");//相對于當前module File file2 = new File("D:\\workspace_idea1\\JavaSenior\\day08\\he.txt"); System.out.println(file1); System.out.println(file2); //構造器2: File file3 = new File("D:\\workspace_idea1","JavaSenior"); System.out.println(file3); //構造器3: File file4 = new File(file3,"hi.txt"); System.out.println(file4); }

/*
public String getAbsolutePath():獲取絕對路徑
public String getPath() :獲取路徑
public String getName() :獲取名稱
public String getParent():獲取上層檔案目錄路徑,若無,回傳null
public long length() :獲取檔案長度(即:位元組數),不能獲取目錄的長度,
public long lastModified() :獲取最后一次的修改時間,毫秒值
如下的兩個方法適用于檔案目錄:
public String[] list() :獲取指定目錄下的所有檔案或者檔案目錄的名稱陣列
public File[] listFiles() :獲取指定目錄下的所有檔案或者檔案目錄的File陣列
*/
@Test public void test2(){ File file1 = new File("hello.txt"); File file2 = new File("d:\\io\\hi.txt"); System.out.println(file1.getAbsolutePath()); System.out.println(file1.getPath()); System.out.println(file1.getName()); System.out.println(file1.getParent()); System.out.println(file1.length()); System.out.println(new Date(file1.lastModified())); System.out.println(); System.out.println(file2.getAbsolutePath()); System.out.println(file2.getPath()); System.out.println(file2.getName()); System.out.println(file2.getParent()); System.out.println(file2.length()); System.out.println(file2.lastModified()); }

如下的兩個方法適用于檔案目錄:
public String[] list() :獲取指定目錄下的所有檔案或者檔案目錄的名稱陣列
public File[] listFiles() :獲取指定目錄下的所有檔案或者檔案目錄的File陣列
@Test
public void test3(){
File file = new File("C:\\Users\\Administrator\\Desktop\\JavaSenior");//如果該目錄不存在則會回傳空指標例外
String[] list = file.list();
for(String s : list){
System.out.println(s);
}
System.out.println();
File[] files = file.listFiles();
for(File f : files){
System.out.println(f);
}


/*
public boolean renameTo(File dest):把檔案重命名為指定的檔案路徑
比如:file1.renameTo(file2)為例:
要想保證回傳true,需要file1在硬碟中是存在的,且file2不能在硬碟中存在,
*/
@Test public void test4(){ File file1 = new File("hello.txt"); File file2 = new File("D:\\io\\hi.txt"); boolean renameTo = file1.renameTo(file2); System.out.println(renameTo); }


/*
public boolean isDirectory():判斷是否是檔案目錄
public boolean isFile() :判斷是否是檔案
public boolean exists() :判斷是否存在
public boolean canRead() :判斷是否可讀
public boolean canWrite() :判斷是否可寫
public boolean isHidden() :判斷是否隱藏
*/
@Test public void test5(){ File file1 = new File("hello.txt"); file1 = new File("hello1.txt"); System.out.println(file1.isDirectory()); System.out.println(file1.isFile()); System.out.println(file1.exists()); System.out.println(file1.canRead()); System.out.println(file1.canWrite()); System.out.println(file1.isHidden()); System.out.println(); File file2 = new File("d:\\io"); file2 = new File("d:\\io1"); System.out.println(file2.isDirectory()); System.out.println(file2.isFile()); System.out.println(file2.exists()); System.out.println(file2.canRead()); System.out.println(file2.canWrite()); System.out.println(file2.isHidden()); }
/*
創建硬碟中對應的檔案或檔案目錄
public boolean createNewFile() :創建檔案,若檔案存在,則不創建,回傳false
public boolean mkdir() :創建檔案目錄,如果此檔案目錄存在,就不創建了,如果此檔案目錄的上層目錄不存在,也不創建,
public boolean mkdirs() :創建檔案目錄,如果此檔案目錄存在,就不創建了,如果上層檔案目錄不存在,一并創建
洗掉磁盤中的檔案或檔案目錄
public boolean delete():洗掉檔案或者檔案夾
洗掉注意事項:Java中的洗掉不走回收站,
*/
@Test public void test6() throws IOException { File file1 = new File("hi.txt"); if(!file1.exists()){ //檔案的創建 file1.createNewFile(); System.out.println("創建成功"); }else{//檔案存在 file1.delete(); System.out.println("洗掉成功"); } }
@Test public void test7(){ //檔案目錄的創建 File file1 = new File("d:\\io\\io1\\io3"); boolean mkdir = file1.mkdir(); if(mkdir){ System.out.println("創建成功1"); } File file2 = new File("d:\\io\\io1\\io4"); boolean mkdir1 = file2.mkdirs(); if(mkdir1){ System.out.println("創建成功2"); } //要想洗掉成功,io4檔案目錄下不能有子目錄或檔案 File file3 = new File("D:\\io\\io1\\io4"); file3 = new File("D:\\io\\io1"); System.out.println(file3.delete()); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/285559.html
標籤:Java
下一篇:兩年作業經驗,離職了...
