java開發(fā)之File類詳細(xì)使用方法介紹
File類簡介
在 Java 中,F(xiàn)ile 類是 java.io 包中唯一代表磁盤文件本身的對象。File 類定義了一些與平臺無關(guān)的方法來操作文件,F(xiàn)ile類主要用來獲取或處理與磁盤文件相關(guān)的信息,像文件名、 文件路徑、訪問權(quán)限和修改日期等,還可以瀏覽子目錄層次結(jié)構(gòu)。
File 類表示處理文件和文件系統(tǒng)的相關(guān)信息。也就是說,F(xiàn)ile 類不具有從文件讀取信息和向文件寫入信息的功能,它僅描述文件本身的屬性。
File類的相關(guān)方法
1、構(gòu)造方法
File(String pathname) 通過將給定路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建一個(gè)新 File 實(shí)例。
File(String parent,String child) 根據(jù)指定的父路徑和文件路徑創(chuàng)建一個(gè)新File對象實(shí)例
File(File parent,String child) 根據(jù)指定的父路徑對象和文件路徑創(chuàng)建一個(gè)新的File對象實(shí)例
代碼實(shí)現(xiàn)過程
/*
- File的構(gòu)造函數(shù)
- */
public static void main(String[] args) {
//File(String pathname) 將指定路徑名轉(zhuǎn)換成一個(gè)File對象
File file = new File("D:\\1.txt");
System.out.println(file);
//File(String parent,String child) 根據(jù)指定的父路徑和文件路徑創(chuàng)建File對象
File file1 = new File("D:\\a","1.txt");
System.out.println(file1);
//File(File parent,String child) 根據(jù)指定的父路徑對象和文件路徑創(chuàng)建File對象
File parent = new File("D:\\a");
File file2 = new File(parent, "1.txt");
System.out.println(file2);
File file3 = new File(new File("D:\\a"),"1.txt");
System.out.println(file3);
}
運(yùn)行結(jié)果

2、File類創(chuàng)建和刪除功能
boolean createNewFile();指定路徑不存在該文件時(shí)創(chuàng)建文件,返回true 否則false
boolean mkdir() 當(dāng)指定的單擊文件夾不存在時(shí)創(chuàng)建文件夾并返回true 否則false
boolean mkdirs() 但指定的多級文件夾在某一級文件夾不存在時(shí),創(chuàng)建多級文件夾并返回true 否則false
boolean delete() 刪除文件或者刪除單級文件夾
刪除文件夾,這個(gè)文件夾下面不能有其他的文件和文件夾
代碼實(shí)現(xiàn)過程
public static void main(String[] args) throws IOException {
File file = new File("D:\\a\\1.txt");
File file1 = new File("1.txt");
boolean flag = file1.createNewFile();
System.out.println(flag);
File file2 = new File("b");
boolean flag2 = file2.mkdir();
System.out.println(flag);
File file3 = new File("c\\d\\e");
boolean d = file1.mkdir();
boolean c = file1.mkdirs();
System.out.println(d);
System.out.println(c);
File file4 = new File("c.txt");
System.out.println(file4.mkdir());
File file5 = new File("b");
System.out.println(file2.delete());
}
運(yùn)行結(jié)果

3、File類的判斷功能
boolean exists() 判斷指定路徑的文件或文件夾是否為空
boolean isAbsolute() 判斷當(dāng)前路徑是否是絕對路徑
boolean isDirectory() 判斷當(dāng)前的目錄是否存在
boolean isFile() 判斷當(dāng)前的目錄是否是一個(gè)文件
boolean isHidden() 判斷當(dāng)前路徑是否是一隱藏文件
代碼實(shí)現(xiàn)過程
public static void main(String[] args) throws IOException {
// method();
// method2();
// method3();
// method4();
}
//判斷文件是否存在
public static void method() throws IOException {
File file = new File("a.txt");
file.createNewFile();
boolean flag = file.exists();
System.out.println(flag);
}
//判斷當(dāng)前路徑是否為絕對路徑
public static void method2() throws IOException{
File file = new File("D:\\a\\1.txt");
boolean flag = file.isAbsolute();
System.out.println(flag);
}
//判斷當(dāng)前是文件夾還是文件
public static void method3() throws IOException{
File file = new File("1.txt");
File file1 = new File("b");
file1.mkdir();
boolean flag = file.isDirectory();
boolean flag2 = file1.isFile();
System.out.println(flag);
System.out.println(flag2);
}
//判斷當(dāng)前路徑是否為隱藏文件
public static void method4() throws IOException{
File file = new File("D:\\a\\1.txt");
System.out.println(file.isHidden());
}
運(yùn)行結(jié)果
method()

method2()

method3()

method4()

4、File類的獲取功能和修改名字功能
File getAbsoluteFile() 獲取文件的絕對路徑,返回File對象
String getAbsolutePath() 獲取文件的絕對路徑,返回路徑的字符串
String getParent() 獲取當(dāng)前路徑的父級路徑,以字符串形式返回該父級路徑
String getName() 獲取文件或文件夾的名稱
String getPath() 獲取File對象中封裝的路徑
long lastModified() 以毫秒值返回最后修改時(shí)間
long length() 返回文件的字節(jié)數(shù)
boolean renameTo(File dest) 將當(dāng)前File對象所指向的路徑修改為指定File所指向的路徑
代碼實(shí)現(xiàn)過程:
public static void main(String[] args) throws IOException {
// method();
// method2();
// method3();
// method4();
}
public static void method(){
File file = new File("D:\\a\\1.txt");
File file1 = new File("1.txt");
//以File對象返回的形式返回當(dāng)前File對象所指向的絕對路徑
System.out.println(file1.getAbsoluteFile());
//返回File對象所指向的絕對路徑
System.out.println(file1.getAbsolutePath());
}
public static void method2() throws IOException {
File file = new File("a.txt");
File file1 = new File("b","c.txt");
System.out.println(file1.createNewFile());
File parent = new File("b");
File file2 = new File(parent,"c.txt");
if (!parent.exists()){
parent.mkdirs();
}
System.out.println(file2.createNewFile());
System.out.println(file2.getParent());
System.out.println(file2.getParentFile());
}
public static void method3() throws IOException{
File file = new File("1.txt");
File file1 = new File("D:\\a\\1.txt");
File file2 = new File("b");
System.out.println(file.getName());
System.out.println(file1.getName());
System.out.println(file2.getName());
System.out.println(file.getPath());
System.out.println(file1.getPath());
System.out.println(file2.getPath());
System.out.println(file.lastModified());
Date date = new Date(1556085068524L);
System.out.println(date.toLocaleString());
System.out.println(file.length());
System.out.println(file2.length());
}
public static void method4() throws IOException{
File file = new File("a.txt");
File file1 = new File("e.txt");
System.out.println(file.renameTo(file1));
}
運(yùn)行結(jié)果
method()

method2()

method3()

method4()

5、File 類的其他獲取功能
String[] list(); 以字符串的形式返回當(dāng)前路徑下所有的文件和文件夾的名稱
File[] listFile 以File對象的形式返回當(dāng)前路徑下的所有文件和文件夾名稱
Static File[] listRoots() 獲取計(jì)算機(jī)中的所有盤符
代碼實(shí)現(xiàn)過程
public static void main(String[] args) {
//method();
// method2();
//method3();
}
public static void method(){
File file = new File("b");
File file1 = new File("D:\\QQ\\1916247350");
File file2 = new File("e.txt");
String[] files = file1.list();
for (int i=0;i<files.length;i++){
System.out.println(files[i]);
}
}
public static void method2(){
File file = new File("b");
File file1 = new File("D:\\QQ\\1916247350");
File file2 = new File("e.txt");
File[] files = file1.listFiles();
for (File file3 : files) {
System.out.println(file3.getName());
}
}
public static void method3(){
File[] files = File.listRoots();
for (File file : files) {
System.out.println(file);
}
}
運(yùn)行結(jié)果
method()

method2()

method(3)

練習(xí)
1、輸出指定目錄下的所有java文件
public static void main(String[] args) {
File file = new File("D:\\IDEA\\IDEAprogram");
method(file);
}
public static void method(File file){
//判斷文件是夠是目錄文件
if (file.isDirectory()){
File[] files = file.listFiles();
for (File file1 : files) {
//判斷是否為文件
if (file1.isFile()){
//判斷文件是否是以.java結(jié)尾的文件
if (file1.getName().endsWith(".java")){
System.out.println(file1.getName());
}
}else if (file1.isDirectory()){
//回調(diào),遍歷file1
method(file1);
}
}
}
}
運(yùn)行結(jié)果

2、刪除指定的目錄(包括子目錄)
public static void main(String[] args) {
File file = new File("D:\\a");
method(file);
}
//刪除指定目錄下的文件
public static void method(File file){
//刪除自己所有的子文件和子目錄
//獲取子文件和子目錄
if (file.isDirectory()){
File[] files = file.listFiles();
for (File file1 : files) {
if (file1.isFile()){
System.out.println(file1.getName());
//干掉它
file1.delete();
}else if (file1.isDirectory()){
//繼續(xù)查看
method(file1);
}
}
//干掉自己
System.out.println(file.getName());
file.delete();
}
}
代碼運(yùn)行結(jié)果

本文介紹了java開發(fā)過程中File類的詳細(xì)使用方法,更多關(guān)于File類使用方法請查看下面的相關(guān)鏈接
相關(guān)文章
詳細(xì)分析java并發(fā)之volatile關(guān)鍵字
這篇文章主要介紹了java并發(fā)之volatile關(guān)鍵字的的相關(guān)資料,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06
SpringCloud中的OpenFeign調(diào)用解讀
OpenFeign是一個(gè)顯示聲明式的WebService客戶端,使用OpenFeign能讓編寫Web Service客戶端更加簡單OpenFeign的設(shè)計(jì)宗旨式簡化Java Http客戶端的開發(fā),本文給大家介紹SpringCloud之OpenFeign調(diào)用解讀,感興趣的朋友一起看看吧2023-11-11
Java中回調(diào)函數(shù)?(callback)?及其實(shí)際應(yīng)用場景
在Java中回調(diào)函數(shù)(Callback)是一種常見的設(shè)計(jì)模式,用于實(shí)現(xiàn)異步操作或事件處理,這篇文章主要給大家介紹了關(guān)于Java中回調(diào)函數(shù)?(callback)?及其實(shí)際應(yīng)用場景的相關(guān)資料,需要的朋友可以參考下2024-02-02
java多線程開發(fā)之通過對戰(zhàn)游戲?qū)W習(xí)CyclicBarrier
這篇文章給大家分享了關(guān)于java多線程開發(fā)中通過對戰(zhàn)游戲?qū)W習(xí)CyclicBarrier的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)參考下。2018-08-08

