最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中File文件操作類的超詳細(xì)使用教程

 更新時間:2023年01月18日 10:34:49   作者:學(xué)全棧的灌湯包  
File類在包java.io.File下、代表操作系統(tǒng)的文件對象(文件、文件夾),File類提供了諸如:定位文件,獲取文件本身的信息、刪除文件、創(chuàng)建文件(文件夾)等功能,下面這篇文章主要給大家介紹了關(guān)于Java中File文件操作類的超詳細(xì)使用教程,需要的朋友可以參考下

File類的使用

File的介紹

File的概述:

File類在包java.io.File下、代表操作系統(tǒng)的文件對象(文件、文件夾)。

File類提供了諸如:定位文件,獲取文件本身的信息、刪除文件、創(chuàng)建文件(文件夾)等功能。

注意: File類是不能讀寫文件內(nèi)容。

File創(chuàng)建對象:

方法名稱說明
public File(String pathname)根據(jù)文件路徑創(chuàng)建文件對象
public File(String parent, String child)從父路徑名字符串和子路徑名字符串創(chuàng)建文件對象
public File(File parent, String child)根據(jù)父路徑對應(yīng)文件對象和子路徑名字符串創(chuàng)建文件對象

File對象可以定位文件和文件夾

File封裝的對象僅僅是一個路徑名,這個路徑可以是存在的,也可以是不存在的。

File創(chuàng)建對象演示代碼:

我們常用File(String pathname)方法創(chuàng)建File對象

根據(jù)文件路徑創(chuàng)建File對象(創(chuàng)建的對象可以是文件可以是文件夾)

public static void main(String[] args) {
    // 根據(jù)文件的路勁創(chuàng)建File對象
    File file1 = new File("/Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg");
    File file2 = new File("/Users/chenyq/Documents/learn_Java/FileTest");

    // 下面方法暫時先了解即可
    // 輸出文件的字節(jié)大小
    System.out.println(file1.length()); // 875326
    // 判斷路徑是否存在
    System.out.println(file2.exists()); // true
}

File創(chuàng)建對象支持絕對路徑也支持相對路徑:

絕對路徑:從盤符開始

File file1 = new File(“D:\\abc\\a.txt”);

相對路徑:不帶盤符,默認(rèn)直接到當(dāng)前工程下的目錄尋找文件。

File file3 = new File(“模塊名\\a.txt”); 

File常用API

判斷文件類型-獲取文件信息

方法名稱說明
isDirectory()測試此抽象路徑名表示的File是否為文件夾
isFile()測試此抽象路徑名表示的File是否為文件
exists()測試此抽象路徑名表示的File是否存在
getAbsolutePath()返回此抽象路徑名的絕對路徑名字符串
getPath()將此抽象路徑名轉(zhuǎn)換為路徑名字符串
getName()返回由此抽象路徑名表示的文件或文件夾的名稱
long lastModified()返回文件最后修改的時間毫秒值

判斷是否是文件夾或文件

public static void main(String[] args) {
    // 創(chuàng)建文件對象
    File file = new File("/Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg");

    // 判斷是否是文件夾
    System.out.println(file.isDirectory()); // false
    // 判斷是否是文件
    System.out.println(file.isFile()); // true
}

判斷路徑是否存在

public static void main(String[] args) {
    // 創(chuàng)建文件對象
    File file = new File("/abc/cba");
    System.out.println(file.exists()); // false
}

獲取字符串類型的絕對路徑

public static void main(String[] args) {
    // 創(chuàng)建文件對象
    File file = new File("/Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg");

    System.out.println(file.getAbsoluteFile()); 
  	// /Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg
}

獲取對象定義時使用的路勁

public static void main(String[] args) {
    // 創(chuàng)建文件對象
    File file = new File("/Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg");

    System.out.println(file.getPath()); 
    // /Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg
}

獲取文件夾或者文件名

public static void main(String[] args) {
    // 創(chuàng)建文件對象
    File file = new File("/Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg");

  	System.out.println(file.getName()); // jinx.jpg
}

獲取文件最后修改時間的時間毫秒值

public static void main(String[] args) {
    // 創(chuàng)建文件對象
    File file = new File("/Users/chenyq/Documents/learn_Java/FileTest/jinx.jpg");

    System.out.println(file.lastModified()); // 1666942970207
}

創(chuàng)建文件-刪除文件功能

File類創(chuàng)建文件相關(guān)API:

方法名稱說明
createNewFile()創(chuàng)建一個新的空的文件
mkdir()只能創(chuàng)建一級文件夾
mkdirs()可以創(chuàng)建多級文件夾

演示代碼:

創(chuàng)建一個新的空的文件, 創(chuàng)建成功返回true, 創(chuàng)建失敗false

創(chuàng)建文件這個API幾乎不用, 后面文件都是自動創(chuàng)建的

public static void main(String[] args) throws IOException {
    File file = new File("/Users/chenyq/Documents/learn_Java/code/file-io-app/src/test.txt");

    boolean res = file.createNewFile();
    System.out.println(res); // true
}

mkdir()方法, 創(chuàng)建一級文件夾, 例如/Users/chenyq/Documents/abc/aaa這個路徑中當(dāng)aaa前面的路徑都存在才會創(chuàng)建aaa, 否則創(chuàng)建失敗

public static void main(String[] args) throws IOException {
    File file = new File("/Users/chenyq/Documents/abc/aaa");

    boolean res = file.mkdir();
    // abc文件不存在所以創(chuàng)建失敗
    System.out.println(res); // false
}

mkdirs()方法可以創(chuàng)建多級文件夾, 例如上面路勁使用mkdirs方法可以創(chuàng)建成功

public static void main(String[] args) throws IOException {
    File file = new File("/Users/chenyq/Documents/abc/aaa");

    boolean res = file.mkdirs();
    // abc文件不存在所以創(chuàng)建失敗
    System.out.println(res); // true
}
方法名稱說明
delete()刪除由此抽象路徑名表示的文件或空文件夾

**注意 **:

delete方法默認(rèn)只能刪除文件和空文件夾。

delete方法直接刪除不走回收站

public static void main(String[] args) {
    File file1 = new File("/Users/chenyq/Documents/abc");
    // 不是空文件或文件夾無法刪除
    System.out.println(file1.delete()); // false

    File file2 = new File("/Users/chenyq/Documents/abc/aaa");
    System.out.println(file2.delete()); // true
}

遍歷文件夾

File類的遍歷API:

方法名稱說明
public String[] list()獲取當(dāng)前目錄下所有的"一級文件名稱"到一個字符串?dāng)?shù)組中去返回。
public File[] listFiles()(常用)獲取當(dāng)前目錄下所有的"一級文件對象"到一個文件對象數(shù)組中去返回(重點)
public static void main(String[] args) {
    File file = new File("/Users/chenyq/Documents");

    // 輸出一級文件和文件夾的名稱
    String[] fileName = file.list();
    System.out.println(Arrays.toString(fileName));
	  //[demo, learn_Java, .DS_Store, test, .localized, coderwhy, code, heima_Java, utils, learn_first, class, .UTSystemConfig]
}
public static void main(String[] args) {
    File file = new File("/Users/chenyq/Documents");

    // 輸出一級文件和文件夾對象
    Object[] fileObj = file.listFiles();
    System.out.println(Arrays.toString(fileObj));
  
    // 拿到文件對象數(shù)組后可以調(diào)用方法
    for (File o : fileObj) {
        System.out.println(o.getName());
    }
}

ListFiles方法的注意事項:

當(dāng)調(diào)用者不存在時,返回null

當(dāng)調(diào)用者是一個文件時,返回null

當(dāng)調(diào)用者是一個空文件夾時,返回一個長度為0的數(shù)組

當(dāng)調(diào)用者是一個有內(nèi)容的文件夾時,將里面所有文件和文件夾的路徑放在File數(shù)組中返回

當(dāng)調(diào)用者是一個有隱藏文件的文件夾時,將里面所有文件和文件夾的路徑放在File數(shù)組中返回,包含隱藏內(nèi)容

當(dāng)調(diào)用者是一個需要權(quán)限才能進(jìn)入的文件夾時,返回null

補(bǔ)充:Java中使用File類操作文件時的路徑問題

Java操作文件首先需要實例化一個對象,F(xiàn)ile類實例化對象時必須指定文件路徑,對于不同的操作系統(tǒng),文件路徑中的分隔符不同,例如Windows系統(tǒng)分隔符為反斜杠“\”,Linux系統(tǒng)則為正斜杠“/”。

File類提供了路徑分隔符的常量來確保Java文件操作在不同的操作系統(tǒng)下都能運(yùn)行。

如果在實例化File對象時采用File f = new File("d:\\test.txt"),程序在Windows系統(tǒng)可完美運(yùn)行,但是移植到Linux系統(tǒng)會出錯,使用以下方式可避免該問題:

String path = "d:"+File.separator+"test.txt";
File f = new File(path);

因此在使用File對象操作文件時,盡可能使用File對象自帶的分隔符。

總結(jié) 

到此這篇關(guān)于Java中File文件操作類的超詳細(xì)使用教程的文章就介紹到這了,更多相關(guān)Java File文件操作類使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot使用AOP記錄接口操作日志詳解

    SpringBoot使用AOP記錄接口操作日志詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot使用AOP記錄接口操作日志,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Java?Chassis3的多種序列化方式支持技術(shù)解密

    Java?Chassis3的多種序列化方式支持技術(shù)解密

    這篇文章主要為大家介紹了Java?Chassis?3多種序列化方式支持技術(shù)解密,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • SpringBoot項目實現(xiàn)MyBatis流式查詢的教程詳解

    SpringBoot項目實現(xiàn)MyBatis流式查詢的教程詳解

    這篇文章主要介紹了SpringBoot項目如何實現(xiàn)MyBatis的流式查詢,mybatis的流式查詢,有點冷門,實際用的場景比較少,但是在某些特殊場景下,卻是十分有效的一個方法,感興趣的同學(xué)可以參考一下
    2023-06-06
  • Java實踐練習(xí)輕松幾行實現(xiàn)追書神器

    Java實踐練習(xí)輕松幾行實現(xiàn)追書神器

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實現(xiàn)一個追書神器,用技術(shù)改變生活,大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-10-10
  • 在springboot中使用攔截器的步驟詳解

    在springboot中使用攔截器的步驟詳解

    攔截器Interceptor,是SpringMVC中的核心內(nèi)容,在SpringBoot中使用Interceptor,同時采用全注解開發(fā),這篇文章主要介紹了在springboot中使用攔截器的步驟,需要的朋友可以參考下
    2022-01-01
  • java實現(xiàn)簡單銀行家算法

    java實現(xiàn)簡單銀行家算法

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)簡單銀行家算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • java整數(shù)(秒數(shù))轉(zhuǎn)換為時分秒格式的示例

    java整數(shù)(秒數(shù))轉(zhuǎn)換為時分秒格式的示例

    這篇文章主要介紹了java整數(shù)(秒數(shù))轉(zhuǎn)換為時分秒格式的示例,需要的朋友可以參考下
    2014-04-04
  • Java8 Stream Collectors收集器使用方法解析

    Java8 Stream Collectors收集器使用方法解析

    這篇文章主要介紹了Java8 Stream Collectors收集器使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Java多線程的臨界資源問題解決方案

    Java多線程的臨界資源問題解決方案

    這篇文章主要介紹了Java多線程的臨界資源問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • java如何不通過構(gòu)造函數(shù)創(chuàng)建對象(Unsafe)

    java如何不通過構(gòu)造函數(shù)創(chuàng)建對象(Unsafe)

    這篇文章主要介紹了java如何不通過構(gòu)造函數(shù)創(chuàng)建對象(Unsafe)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論

什邡市| 新源县| 福海县| 肇东市| 衢州市| 于都县| 斗六市| 张家川| 禹州市| 铅山县| 喀什市| 惠安县| 金昌市| 阿拉善盟| 鸡东县| 皮山县| 彩票| 海安县| 尉氏县| 南郑县| 武宣县| 渭南市| 通榆县| 阜城县| 磐石市| 东丰县| 涟源市| 武冈市| 庄浪县| 宜良县| 宁海县| 尼勒克县| 花垣县| 赤峰市| 迁安市| 松滋市| 南投市| 自贡市| 华阴市| 衡山县| 苏尼特右旗|