欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中File文件操作類的基礎(chǔ)用法

 更新時(shí)間:2018年07月03日 15:17:49   作者:MAGIC_JSS  
這篇文章主要給大家介紹了關(guān)于Java中File文件操作類基礎(chǔ)用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用File類具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

眾所周知Java提供File類,讓我們對(duì)文件進(jìn)行操作,下面就來(lái)簡(jiǎn)單整理了一下File類的用法。 話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧

1.基本概念

File:文件和目錄路徑名的抽象表示形式,代表文件或者文件夾。

2.構(gòu)造方法

 // 根據(jù)parent抽象路徑名和child路徑名字符串創(chuàng)建一個(gè)新File實(shí)例
 File(File parent, String child)
 // 通過(guò)將給定路徑名字符串轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建一個(gè)新File實(shí)例
 File(String pathname)
 // 根據(jù)parent路徑名字符串和child路徑名字符串創(chuàng)建一個(gè)新File實(shí)例
 File(String parent, String child)
 // 通過(guò)將給定的file:URI轉(zhuǎn)換為一個(gè)抽象路徑名來(lái)創(chuàng)建一個(gè)新的File實(shí)例
 File(URI uri)

3.常用方法

(1).創(chuàng)建功能

// 創(chuàng)建此抽象路徑名指定的目錄
boolean mkdir()
// 創(chuàng)建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄
boolean mkdirs()
// 當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定名稱的文件時(shí),不可分地創(chuàng)建一個(gè)新的空文件
boolean createNewFile()
// 在默認(rèn)臨時(shí)文件目錄中創(chuàng)建一個(gè)空文件,使用給定前綴和后綴生成其名稱
static File createTempFile(String prefix, String suffix)
// 在指定目錄中創(chuàng)建一個(gè)新的空文件,使用給定的前綴和后綴字符串生成其名稱
static File createTempFile(String prefix, String suffix, File directory)

 // 構(gòu)造方法一
 File file1 = new File("f://file1");
 // 構(gòu)造方法二
 File file2 = new File("f://file1", "file2");
 // 構(gòu)造方法三
 File file3 = new File(file2, "file3.txt");

 // 創(chuàng)建目錄并返回是否創(chuàng)建成功,如果目錄存在則返回false
 boolean b1 = file1.mkdir();
 System.out.println(b1);// true
 // 創(chuàng)建目錄
 boolean b2 = file2.mkdir();
 System.out.println(b2);// true
 // 創(chuàng)建文件
 // 在F盤下創(chuàng)建/file1/file2/file3.txt文件
 boolean b3 = file3.createNewFile();
 System.out.println(b3);// true

 // 創(chuàng)建空文件并指定前綴和后綴
 // 在F盤下創(chuàng)建/file1/file2/file4.....exe文件
 File.createTempFile("file4", ".exe", file2);


注:三種構(gòu)造方法效果是等同的,沒(méi)有本質(zhì)區(qū)別;創(chuàng)建目錄mkdir()、mkdirs()方法,mkdirs()方法創(chuàng)建目錄時(shí),如果待創(chuàng)建目錄的上幾級(jí)目錄不存在則一并創(chuàng)建,mkdir()則只能創(chuàng)建單級(jí)目錄。

(2).刪除功能

// 刪除此抽象路徑名表示的文件或目錄
boolean delete()

 //刪除目錄
 System.out.println(file1.delete()); // false
 //刪除文件
 System.out.println(file3.delete());// true

注:刪除操作時(shí),刪除的是目錄,則必須保證是空目錄。

(3).判斷功能

// 測(cè)試此抽象路徑名表示的文件或目錄是否存在
boolean exists()
// 測(cè)試此抽象路徑名表示的文件是否是一個(gè)目錄
boolean isDirectory()
// 測(cè)試此抽象路徑名表示的文件是否是一個(gè)標(biāo)準(zhǔn)文件
boolean isFile()
// 測(cè)試此抽象路徑名指定的文件是否是一個(gè)隱藏文件
boolean isHidden()
// 測(cè)試應(yīng)用程序是否可以讀取此抽象路徑名表示的文件
boolean canRead()
// 測(cè)試應(yīng)用程序是否可以修改此抽象路徑名表示的文件
boolean canWrite()

  File file = new File("F://hello");
  File file2 = new File(file, "blog.txt");
  // 判斷是否存在
  if (!file.exists()) {
   // 創(chuàng)建目錄
   file.mkdir();
  }
  if (file2.exists()) {
   // 創(chuàng)建文件
   file2.createNewFile();
  }

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

  System.out.println(file2.isDirectory());// false
  System.out.println(file2.isFile());// true
  System.out.println(file2.isHidden());// false
  // 判斷是否是隱藏的
  System.out.println(file2.isHidden());// false
  // 判斷是否可讀
  System.out.println(file2.canRead());// true
  // 判斷是否可寫
  System.out.println(file2.canWrite());// true

注:可以自主修改文件可讀性,查看不同輸出。

(4).獲取功能

(1).基本獲取功能

// 返回由此抽象路徑名表示的文件或目錄的名稱
String getName()
// 返回此抽象路徑名的絕對(duì)路徑名形式
File getAbsoluteFile()
// 返回此抽象路徑名的絕對(duì)路徑名字符串
String getAbsolutePath()
// 將此抽象路徑名轉(zhuǎn)換為一個(gè)路徑名字符串
String getPath()
// 返回此抽象路徑名表示的文件最后一次被修改的時(shí)間
long lastModified()

  File file = new File("F://hello");
  File file2 = new File(file, "blog.txt");
  // 判斷文件或目錄是否存在
  if (!file.exists()) {
   // 不存在則創(chuàng)建
   file.mkdir();
  }
  if (file2.exists()) {
   // 創(chuàng)建文件
   file2.createNewFile();
  }
  //獲取文件名或者目錄名
  System.out.println(file2.getName());// blog.txt
  //獲取文件或目錄的絕對(duì)路徑
  System.out.println(file2.getAbsolutePath());// F:\hello\blog.txt
  //獲取文件或目錄的路徑名(絕對(duì)路徑或者相對(duì)路徑)
  System.out.println(file2.getPath());// F:\hello\blog.txt
  //獲取文件或目錄修改的最后時(shí)間返回毫秒值
  System.out.println(file2.lastModified());// 1463734158963

(2).迭代獲取功能,過(guò)濾器功能

// 返回一個(gè)字符串?dāng)?shù)組,這些字符串指定此抽象路徑名表示的目錄中的文件和目錄
String[] list()
// 返回一個(gè)字符串?dāng)?shù)組,這些字符串指定此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄
String[] list(FilenameFilter filter)
// 返回一個(gè)抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中的文件
File[] listFiles()
// 返回抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄
File[] listFiles(FileFilter filter)
// 返回抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄
File[] listFiles(FilenameFilter filter)

圖示:先看下F盤里面的東東


  File file = new File("F://");

  // 獲取抽象路徑名下的文件和目錄
  String[] s = file.list();
  // 過(guò)濾文件或者目錄名
  String[] ss = file.list(new FilenameFilter() {

   public boolean accept(File dir, String name) {
    // 返回以.png結(jié)尾的文件或者目錄名
    // 控制返回值判斷是否添加到數(shù)組中
    return name.endsWith(".png");
   }
  });

  // 增強(qiáng)for輸出
  for (String string : s) {
   System.out.print(string + " ");// $RECYCLE.BIN android4.0黑馬 android視頻......等等
  }

  // 增強(qiáng)for
  for (String string : ss) {
   System.out.print(string + " ");// ic_ptr_loading.png ic_ptr_pull.png ic_ptr_release.png
  }

  // 獲取抽象路徑名下的文件和目錄對(duì)象
  File[] files = file.listFiles();
  // 獲取抽象路徑名下的文件和目錄對(duì)象,添加文件過(guò)濾
  File[] files2 = file.listFiles(new FileFilter() {

   public boolean accept(File pathname) {
    // 判斷是否是隱藏目錄
    return (pathname.isDirectory()&&pathname.isHidden());
   }
  });

  // 獲取抽象路徑名下的文件和目錄對(duì)象,添加文件名過(guò)濾
  File[] files3 = file.listFiles(new FilenameFilter() {

   public boolean accept(File dir, String name) {
    // 判斷是否是以png結(jié)尾的文件
    return (new File(dir, name).isFile())&&name.endsWith(".png");
   }
  });

  for (File f : files) {
   System.out.print(f.getName()+" ");//$RECYCLE.BIN android4.0黑馬 android視頻......等等
  System.out.println();
  for (File f : files2) {
   System.out.print(f.getName()+" ");//$RECYCLE.BIN ghos 
  }
   System.out.println();
  for (File f : files3) {
   System.out.print(f.getName());//ic_ptr_loading.pngic_ptr_pull.pngic_ptr_release.png
  }

(5).重命名功能

// 重新命名此抽象路徑名表示的文件
boolean renameTo(File dest)

  // 重新命名此抽象路徑名表示的文件
  // boolean renameTo(File dest)

  File file = new File("f://");
  File[] files = file.listFiles();

  for (int i = 0; i < files.length; i++) {
   File f = files[i];
   //判斷是否是以.png結(jié)尾的文件
   if (f.isFile() && f.getName().endsWith(".png")) {
    // 更改文件名,renameTo()接收File對(duì)象 ,這里該對(duì)象并未指定盤符
    boolean b = f.renameTo(new File("pic" + i + ".png"));
    System.out.println(b);
    // true
    // true
    // true
   }
  }

圖示:

注:更改文件或目錄名時(shí),renameTo()方法參數(shù)對(duì)象如果不指定盤的話,默認(rèn)會(huì)將文件剪切到項(xiàng)目目錄下(由上面截圖可以看到);指定盤符的話會(huì)根據(jù)指定位置剪切到該位置。renameTo()方法相當(dāng)于剪切加重命名。

注:更多方法查看API

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享

    Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享

    這篇文章主要介紹了Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java中SpringBoot的@Transactional原理

    Java中SpringBoot的@Transactional原理

    這篇文章主要介紹了Java中SpringBoot的@Transactional原理,面向元數(shù)據(jù)遍歷已經(jīng)成為越來(lái)越多開發(fā)者的偏好,因此原理從Springboot的EnableTransactionManagement注解說(shuō)起,需要的朋友可以參考下
    2023-07-07
  • Guava事件總線應(yīng)用場(chǎng)景最佳實(shí)踐

    Guava事件總線應(yīng)用場(chǎng)景最佳實(shí)踐

    這篇文章主要為大家介紹了Guava事件總線應(yīng)用場(chǎng)景最佳實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 深入理解Spring AOP

    深入理解Spring AOP

    這篇文章主要介紹了深入理解Spring AOP,詳細(xì)的介紹了spring aop的具體實(shí)現(xiàn)與理論
    2017-01-01
  • 使用SpringBoot + Redis + Vue實(shí)現(xiàn)動(dòng)態(tài)路由加載頁(yè)面的示例代碼

    使用SpringBoot + Redis + Vue實(shí)現(xiàn)動(dòng)態(tài)路由加載頁(yè)面的示例代

    在現(xiàn)代 Web 應(yīng)用開發(fā)中,動(dòng)態(tài)路由加載能夠顯著提升應(yīng)用的靈活性和安全性,本文將深入探討如何利用 Spring Boot、Redis、Element UI 和 Vue 技術(shù)棧實(shí)現(xiàn)動(dòng)態(tài)路由加載,并通過(guò) Redis 生成和驗(yàn)證有效鏈接以實(shí)現(xiàn)頁(yè)面訪問(wèn)控制,需要的朋友可以參考下
    2024-09-09
  • java 抽象類和接口的區(qū)別詳細(xì)解析

    java 抽象類和接口的區(qū)別詳細(xì)解析

    abstractclass和interface是Java語(yǔ)言中對(duì)于抽象類定義進(jìn)行支持的兩種機(jī)制,正是由于這兩種機(jī)制的存在,才賦予了Java強(qiáng)大的面向?qū)ο竽芰?需要了解的朋友可以參考下
    2012-11-11
  • Mybatis代碼生成器Mybatis Generator(MBG)實(shí)戰(zhàn)詳解

    Mybatis代碼生成器Mybatis Generator(MBG)實(shí)戰(zhàn)詳解

    本文我們主要實(shí)戰(zhàn)Mybatis官方的代碼生成器:Mybatis Generator(MBG),掌握它以后,可以簡(jiǎn)化大部分手寫代碼,我們只需要寫復(fù)雜邏輯代碼,需要的朋友可以參考下
    2023-05-05
  • Java?Collection?接口和常用方法綜合詳解

    Java?Collection?接口和常用方法綜合詳解

    Collection派生出三個(gè)子接口,Set代表不可重復(fù)的無(wú)序集合、List代表可重復(fù)的有序集合、Queue是java提供的隊(duì)列實(shí)現(xiàn),通過(guò)它們不斷的擴(kuò)展出很多的集合類,接下來(lái)我們?cè)敿?xì)介紹一下
    2021-11-11
  • 玩轉(zhuǎn)spring boot 結(jié)合AngularJs和JDBC(4)

    玩轉(zhuǎn)spring boot 結(jié)合AngularJs和JDBC(4)

    玩轉(zhuǎn)spring boot,這篇文章主要介紹了結(jié)合AngularJs和JDBC,玩轉(zhuǎn)spring boot,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Quarkus集成apollo配置中心

    Quarkus集成apollo配置中心

    這篇文章主要介紹了Quarkus集成apollo配置中心,文中詳細(xì)的講解了Quarkus的config構(gòu)成,以及apollo集成實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02

最新評(píng)論