File類
1.File類的概述和構造方法
- A:File類的概述
- File更應該叫做一個路徑
- 檔案路徑或者檔案夾路徑
- 路徑分為絕對路徑和相對路徑
- 絕對路徑是一個固定的路徑,從盤符開始
- 相對路徑相對于某個位置,在eclipse下是指目前項目下,在dos下
- 檢視API指的是目前路徑
- 檔案和目錄路徑名的抽象表示形式
- B:構造方法
- File(String pathname):根據一個路徑得到File對象
- File(String parent, String child):根據一個目錄和一個子檔案/目錄得到File對象
- File(File parent, String child):根據一個父File對象和一個子檔案/目錄得到File對??
- C:案例示範
package heima_day19;
import java.io.File;
public class Demo3_File {
public static void main(String[] args) {
File file = new File("F:\\項目\\電子文檔");//檔案的路徑
System.out.println(file.exists());
File file1 = new File("xxx.txt");
System.out.println(file1.exists());
String parent = "F:\\項目";
String child = "電子文檔";
File file2 = new File(parent,child);
System.out.println(file2.exists());
File parent1 =new File("F:\\項目\\電子文檔");
String child1 = "第10章 手機網絡遊戲.pdf";
File file3 = new File(parent1,child1);
System.out.println(file3.exists());
}
}
2.File類的建立功能
- A:建立功能
- public boolean createNewFile():建立檔案 如果存在這樣的檔案,就不建立了
- public boolean mkdir():建立檔案夾 如果存在這樣的檔案夾,就不建立了
- public boolean mkdirs():建立檔案夾,如果父檔案夾不存在,會幫你建立出來
- B:案例示範
package heima_day19;
import java.io.File;
import java.io.IOException;
public class Demo4_File {
/**
* 注意事項:
* 如果你建立檔案或者檔案夾忘了寫盤符路徑,那麼,預設在項目路徑下。
*/
public static void main(String[] args)throws IOException {
File file = new File("yyy.txt");
System.out.println(file.createNewFile());//如果沒有就建立,傳回true
File dir1 = new File("aaa");
System.out.println(dir1.mkdir());
File dir2 = new File("bbb\\ccc");
System.out.println(dir2.mkdirs());
}
}
3.File類的重命名和删除功能
- A:重命名和删除功能
- public boolean renameTo(File dest):把檔案重命名為指定的檔案路徑
- public boolean delete():删除檔案或者檔案夾
- B:重命名注意事項
- 如果路徑名相同,就是改名。
- 如果路徑名不同,就是改名并剪切。
- C:删除注意事項:
- Java中的删除不走資源回收筒。
- 要删除一個檔案夾,請注意該檔案夾内不能包含檔案或者檔案夾
- D:案例示範
package heima_day19;
import java.io.File;
public class Demo5_File {
public static void main(String[] args) {
File file1 = new File("yyy.txt");
File file2 = new File("aaa.txt");
//System.out.println(file1.renameTo(file2));
System.out.println(file2.delete());
//如果删除一個檔案夾,那麼檔案夾必須是空的
}
}
4.File類的判斷功能
- A:判斷功能
- public boolean isDirectory():判斷是否是目錄
- public boolean isFile():判斷是否是檔案
- public boolean exists():判斷是否存在
- public boolean canRead():判斷是否可讀
- public boolean canWrite():判斷是否可寫
- public boolean isHidden():判斷是否隐藏
- B:案例示範
package heima_day19;
import java.io.File;
public class Demo6_File {
public static void main(String[] args) {
File dir1 = new File("aaa");
File dir2 = new File("ooo.txt");
System.out.println(dir1.isDirectory());//判斷是否是檔案夾
System.out.println(dir2.isDirectory());
System.out.println(dir1.isFile());//判斷是否是檔案
System.out.println(dir2.isFile());
System.out.println("----");
dir2.setReadable(false);//設定檔案是否可讀
System.out.println(dir2.canRead());//windows系統認為所有檔案都是可讀的
dir2.setWritable(false);
System.out.println(dir2.canWrite());//windows系統可以設定為不可寫
System.out.println(dir2.isHidden());//判斷是否隐藏
}
}
5.File類的擷取功能
- A:擷取功能
- public String getAbsolutePath():擷取絕對路徑
- public String getPath():擷取路徑
- public String getName():擷取名稱
- public long length():擷取長度。位元組數
- public long lastModified():擷取最後一次的修改時間,毫秒值
- public String[] list():擷取指定目錄下的所有檔案或者檔案夾的名稱數組
- public File[] listFiles():擷取指定目錄下的所有檔案或者檔案夾的File數組
- B:案例示範
package heima_day19;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo7_File {
public static void main(String[] args) {
File file = new File("ooo.txt");
System.out.println(file.getAbsolutePath());//擷取絕對路徑
System.out.println(file.getPath());//擷取構造方法傳入的路徑
System.out.println(file.getName());//擷取檔案或檔案夾的名稱
System.out.println(file.length());
System.out.println("-----");
System.out.println(file.lastModified());//擷取最後一次的修改時間,毫秒值
Date d = new Date(file.lastModified());
System.out.println(d);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(d));
System.out.println("-----");
File dir = new File("bbb");
String[] arr = dir.list();
for (String string : arr) {
System.out.println(string);
}
File [] subFiles = dir.listFiles();
for (File file2 : subFiles) {
System.out.println(file2);
}
}
}
6.檔案名稱過濾器的概述及使用
- A:檔案名稱過濾器的概述
- public String[] list(FilenameFilter filter)
- public File[] listFiles(FileFilter filter)
- B:檔案名稱過濾器的使用
- 需求:判斷E盤目錄下是否有字尾名為.jpg的檔案,如果有,就輸出該檔案名稱
- C:源碼分析
- D:案例示範
package heima_day19;
import java.io.File;
public class Demo8_File {
public static void main(String[] args) {
//String[] <u>arr</u> = dir.list(new filenameFileter() {
// @Override
// public boolean accept(File <u>dir</u>,String
name) {
//return true;
//}
//});
}
}