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

java中File類(lèi)的構(gòu)造函數(shù)及其方法

 更新時(shí)間:2019年06月27日 16:36:11   作者:DSHORE  
這篇文章主要介紹了java中File類(lèi)的構(gòu)造函數(shù)及其方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1、IO流(Input Output)

IO流技術(shù)主要的作用是解決設(shè)備與設(shè)備之間的數(shù)據(jù)傳輸問(wèn)題,比如:硬盤(pán)的數(shù)據(jù)--讀取到-->內(nèi)存中 內(nèi)存的數(shù)據(jù)--讀取到-->硬盤(pán)中 鍵盤(pán)上的數(shù)據(jù)--讀取到-->內(nèi)存中

2、IO流技術(shù)的運(yùn)用場(chǎng)景

導(dǎo)出報(bào)表、上傳大頭照、下載、解析xml文件.....等等 (數(shù)據(jù)保存到硬盤(pán),該數(shù)據(jù)可以做到永久性保存。數(shù)據(jù)一般以文件的形式保存到硬盤(pán)上。sun使用一個(gè)File類(lèi)來(lái)描述文件或者文件夾)

3、File類(lèi)的構(gòu)造函數(shù)(方法)

  • File(String pathname):指定文件或者文件夾的路徑來(lái)創(chuàng)建一個(gè)File文件
  • File(File parent, String child):根據(jù)parent抽象路徑和child路徑名字符串,創(chuàng)建一個(gè)新的File實(shí)例
  • File(String parent, String child):

目錄分割符:在Windows機(jī)器上的目錄分隔符是\,在Linux機(jī)器上的目錄分隔符是/

注意:在Windows上面\與/都可以作為目錄分隔符。而且,如果寫(xiě)/的時(shí)候,只需要寫(xiě)1個(gè)正斜杠即可,而寫(xiě)\的時(shí)候,需要寫(xiě)2個(gè)反斜杠。

package com.dhb.file;
import java.io.File;
import java.io.IOException;
/**
 * @author DSHORE / 2018-6-22
 *
 */
public class Demo1 {
  public static void main(String[] args) throws IOException {
    File file = new File("F:/a.txt");//指定路徑  [構(gòu)造函數(shù)]
    file.createNewFile();//創(chuàng)建文件(空文件)  [方法]    
    File files = new File("F:\\","b.txt");//第一個(gè)參數(shù)是路徑,第二個(gè)參數(shù)是要?jiǎng)?chuàng)建文件的文件名  [構(gòu)造函數(shù)]
    files.createNewFile();//創(chuàng)建文件(空文件)  [方法]
  }
}

4、File類(lèi)的一些常用方法

創(chuàng)建:

  • createNewFile():在指定位置創(chuàng)建空文件,成功返回true,如果已存在就不再創(chuàng)建了返回false
  • mkdir():在指定位置創(chuàng)建目錄,這之后創(chuàng)建最后一級(jí)目錄,如果上級(jí)目錄不存在就拋出異常.
  • mkdirs():在指定位置創(chuàng)建目錄,這也會(huì)創(chuàng)建路徑中所有不存在的父目錄
  • renameTo(File dest):重命名文件或文件夾。文件不同時(shí),相當(dāng)于文件的剪切,剪切的時(shí)候不能操作非空文件夾。移動(dòng)/重命名成功返回true,失敗返回false

刪除:

  • delete() :刪除一個(gè)文件或者空文件夾,如果文件夾不為空,則不能刪除,成返回true,失敗返回false
  • deleteOnExit(): 在虛擬機(jī)終止時(shí),請(qǐng)求刪除此抽象路徑名的文件或者目錄,保證文件異常時(shí)也可以刪除文件

判斷:

  • exists():判斷指定的文件或者文件夾是否存在
  • isFile():判斷是否是一個(gè)文件;如果不存在,則為false
  • isDirectory():判斷是否是一個(gè)文件夾
  • isHidden():判斷指定的文件是否是隱藏文件
  • isAbsolute():判斷指定的文件或文件夾是否是在絕對(duì)路徑下

獲?。?br />

  • getName():獲取文件或文件夾名稱(chēng)
  • getPath():返回的是絕對(duì)路徑,可以是相對(duì)路徑,但是目錄要指定
  • getAbsolutePath():獲取絕對(duì)路徑
  • length():獲取文件的大小(字節(jié)為單位)
  • getParent():獲取文件的父路徑
  • lastModified():獲取文件最后一次修改的時(shí)間

注意:

  • . :一個(gè)點(diǎn)表示當(dāng)前路徑
  • .. :兩個(gè)點(diǎn)表示上一級(jí)路徑

路徑問(wèn)題:

  • 絕對(duì)路徑:該文件在硬盤(pán)上的完整路徑;絕對(duì)路徑一般是以盤(pán)符開(kāi)頭的。
  • 相對(duì)路徑:資源文件相對(duì)于當(dāng)前程序所在路徑。

注意:如果程序當(dāng)前所在路徑與資源文件不再同一個(gè)盤(pán)下面,是沒(méi)法寫(xiě)相對(duì)路徑的

5、實(shí)例

package com.dhb.file;

import java.io.File;
import java.io.IOException;

/**
 * @author DSHORE / 2018-6-22
 *
 */
public class Demo2 {
  public static void main(String[] args) throws IOException {
    //創(chuàng)建
    File file=new File("F:\\aa");
    System.out.println("創(chuàng)建文件成功了嗎?"+file.createNewFile());
    File dir=new File("F:\\aaa\\aaa");
    System.out.println("創(chuàng)建文件夾成功了嗎?"+dir.mkdir());
    File dirs=new File("F:\\aaa\\aaa\\aa\\cc\\ddd");
    System.out.println("創(chuàng)建多級(jí)文件夾成功了嗎?"+dirs.mkdirs());
    
    File destFile=new File("F:\\aaaw");
    System.out.println("重命名文件夾成功嗎?"+dir.renameTo(destFile));
    System.out.println("重命名文件成功嗎?"+file.renameTo(destFile));
    
    //刪除
    File deletefile=new File("F:\\aaa");
    System.out.println("刪除文件/空文件夾成功嗎?"+deletefile.delete());
    file.deleteOnExit();//jvm
    System.out.println("哈哈哈");
    
    //判斷
    File fil=new File("F:\\a.txt");
    file.createNewFile();//創(chuàng)建一個(gè)文件
    System.out.println("該文件/文件夾存在嗎?"+fil.exists());
    System.out.println("判斷是否是一個(gè)文件:"+fil.isFile());
    System.out.println("判斷是否是一個(gè)文件夾:"+fil.isDirectory());
    System.out.println("隱藏文件嗎?"+fil.isHidden());
    System.out.println("是絕對(duì)路徑嗎?"+fil.isAbsolute());
  }
}

"獲取"的例子

package com.dhb.file;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author DSHORE / 2018-6-25
 *
 */
public class Demo3 {
  public static void main(String[] args) {
    /*File file=new File("..\\homeWork.java");
    System.out.println(file.exists());*/
    File f=new File("..\\..\\a.txt");//上上級(jí)路徑下的a.txt文件
    System.out.println("獲取文件名:"+f.getName());//返回值:a.txt
    System.out.println("獲取相對(duì)路徑:"+f.getPath());//返回值:..\..\a.txt  說(shuō)明:a.txt文件在C:\MyEclipse10路徑下
    /** 當(dāng)上面兩條輸出語(yǔ)句的絕對(duì)路徑下沒(méi)有a.txt這個(gè)文件時(shí),也是輸出這個(gè)結(jié)果,因?yàn)樗@取的是當(dāng)前對(duì)象f的值*/
    System.out.println(f.exists());//返回值:true   說(shuō)明:C:\MyEclipse10路徑下有a.txt文件
    System.out.println("獲取絕對(duì)路徑:"+f.getAbsolutePath());//返回值:C:\MyEclipse10\MyCode\MyJavaCode\..\..\a.txt
    System.out.println("獲取文件的大小(字節(jié)為單位):"+f.length());//返回值:10
    System.out.println("獲取文件的父路徑:"+f.getParent());//返回值:..\..  說(shuō)明:其父路徑為C:\MyEclipse10
    long lm=f.lastModified();
    Date date=new Date(lm);
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");  
    System.out.println("獲取文件最后一次修改的時(shí)間:"+sdf.format(date));//返回值:2018年06月25日 11:29:49
  }
}

運(yùn)行結(jié)果圖

附錄1

與文件夾操作相關(guān):

  • static File[] listRoots():列出所有的根目錄(Windows所有系統(tǒng)盤(pán)符)
  • list():返回指定目錄下的所有文件或文件夾名,包含隱藏文件(返回的文件/文件夾名是字符串,不可再對(duì)文件/文件夾進(jìn)行操作)
  • listFiles():返回指定目錄下的所有文件或文件夾名,包含隱藏文件(可以再對(duì)文件/文件夾進(jìn)行操作)
package com.dhb.file;
import java.io.File;
/**
 * @author DSHORE / 2018-6-25
 *
 */
public class Demo4 {
  public static void main(String[] args) {
    File[] roots=File.listRoots();
    for (File file : roots) {
      System.out.println(file);
      /* C:\   //運(yùn)行結(jié)果
       * D:\
       * E:\
       * F:\
       * G:\
       * H:\
       * */
    }
    File file=new File("F:\\MyJavaCode");
    String[] s=file.list();
    for (String string : s) {
      System.out.println(string);//返回指定目錄下的所有文件或文件夾名,包含隱藏文件(返回的文件/文件夾名是字符串,不可再對(duì)文件/文件夾進(jìn)行操作)
    }
    File[] f=file.listFiles();
    for (File file2 : f) {
      System.out.println(file2.getName());//返回指定目錄下的所有文件或文件夾名,包含隱藏文件(可以再對(duì)文件/文件夾進(jìn)行操作)
    }
  }
}

運(yùn)行結(jié)果圖

后面兩條輸出語(yǔ)句的結(jié)果都一樣

附錄2

例1:

package com.dhb.file;

import java.io.File;

/**
 * @author DSHORE / 2018-6-25
 *
 */
/* 需求1:指定一個(gè)文件夾,然后返回文件夾下面所有java文件
 * */
public class Demo5 {
  public static void main(String[] args) {
    listJava(new File("F:\\MyJavaCode"));
  }
  public static void listJava(File dir){
    File[] file=dir.listFiles();
    for (File file2 : file) {
      //方法1
      if(file2.getName().endsWith(".java")){
        System.out.println(file2.getName());
      }
      //方法2:正則表達(dá)式
      String fileName=file2.getName();
      if(fileName.matches(".+\\.java")){
        System.out.println(fileName);
      }
    }
  }
}

運(yùn)行結(jié)果圖

   

例2:

package com.dhb.file;
import java.io.File;
/**
 * @author DSHORE / 2018-6-26
 *
 */
/*
 * 需求2:指定一個(gè)文件夾,然后列出文件夾下面的所有子文件與文件夾,但是 格式要如下
 * 
 * 文件:
 *   文件名1
 *     文件名2
 *     文件名2
 *
 * 文件夾:
 *     文件夾1
 *     文件夾2
 *     文件夾3
 * */
public class Demo6 {
  public static void listJava2(File dir){
    File[] file=dir.listFiles();
    System.out.println("以下是文件:");
    for (File file2 : file) {
      if(file2.isFile()){//判斷其是否是文件
        System.out.println(file2.getName());
      }
    }
    System.out.println("以下是文件夾:");
    for (File file2 : file) {
      if(file2.isDirectory()){//判斷其是否是文件夾
        System.out.println(file2.getName());
      }
    }
  }
  public static void main(String[] args) {
    listJava2(new File("F:\\MyJavaCode"));
  }
}

運(yùn)行結(jié)果圖

附錄3

package com.dhb.file;
import java.io.File;
/**
 * @author DSHORE / 2018-6-26
 *
 */
//需求:掃描電腦中所有文件夾和文件以及文件夾下的文件和文件夾,或掃描指定盤(pán)符下的所有文件和文件夾等等
public class Demo7 {
  public static void listDirtory(String dir){
    File f=new File(dir);
    File[] f2=f.listFiles();//得到文件和文件夾
    if(f2==null){
      return;
    }else{
      for (int i = 0; i < f2.length; i++) {
        if(f2[i].isDirectory()){//判斷是否是 文件夾
          System.out.println(f2[i].getAbsolutePath()+" \"is director file\"");//返回值是“文件夾”
          listDirtory(f2[i].getAbsolutePath());//繼續(xù)掃描文件夾里面的文件和文件夾
        }else{
          System.out.println(f2[i].getAbsolutePath());//返回值是“文件”
        }
      }
    }
  }
  public static void main(String[] args) {
    /*File[] f=File.listRoots();//掃描電腦中所有根盤(pán)符
    for (File file : f) {
      System.out.println(file);
      listDirtory(file.toString());//繼續(xù)掃描文件夾里面的文件和文件夾
    }*/
    //掃描當(dāng)前磁盤(pán)
    listDirtory(File.separator);
    //掃描指定磁盤(pán)
    //listDirtory("F:\\");
  }
}

運(yùn)行結(jié)果圖(文件和文件夾太多,下面只顯示部分)路徑的最后一級(jí)是文件/文件夾

附錄4

package com.dhb.file;

import java.io.File;

/**
 * @author DSHORE / 2018-7-4
 *
 */
//需求:刪除磁盤(pán)中指定的文件夾里面的所有文件和文件夾
public class Demo12 {
  public static void delDir(File dir){
    File[] files=dir.listFiles();
    if(files != null){            
      for (int i = 0; i < files.length; i++) {
        if(files[i].isFile()){
          boolean b = files[i].delete();
          if(b){
            System.out.println(files[i].getAbsolutePath()+"\'文件刪除成功\'");
          }
        }else{
          delDir(files[i]);
        }
      }
    }//留下根目錄,根目錄里面的文件和文件夾全刪了
    for (int j = 0; j < files.length; j++) {
      if (files[j].isDirectory()) {
        boolean b2 = files[j].delete();
        //dir.delete();//刪除根目錄
        if (b2) {
          System.out.println(files[j].getAbsolutePath()+"\'目錄刪除成功\'");
        }
      }
    }
    if ("F:\\day".equals(dir.getAbsolutePath())) {
      boolean b3 = dir.delete();//刪除根目錄
      if (b3) {
        System.out.println(dir.getAbsolutePath()+"\'根目錄刪除成功\'");
      }
    }
  }
  public static void main(String[] args) {
    File f=new File("F:\\day");
    delDir(f);
  }
}

刪除前

刪除后(程序運(yùn)行后)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Java枚舉的作用與好處

    淺談Java枚舉的作用與好處

    下面小編就為大家?guī)?lái)一篇淺談Java枚舉的作用與好處。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • SpringBoot視圖解析實(shí)現(xiàn)原理深入分析

    SpringBoot視圖解析實(shí)現(xiàn)原理深入分析

    視圖解析其實(shí)就是SpringBoot某一個(gè)controller的方法執(zhí)行完成之后,它是跳轉(zhuǎn)到那個(gè)頁(yè)面。由于我們springboot項(xiàng)目默認(rèn)打包為jar包,是形成壓縮包的形式,而jsp又不支持壓縮,所以我們SpringBoot不知JSP的,需要引入第三方模板引擎才可以處理
    2022-10-10
  • Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID

    Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID

    本篇文章主要介紹了Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java如何接收XML格式參數(shù)并轉(zhuǎn)換為JSON

    Java如何接收XML格式參數(shù)并轉(zhuǎn)換為JSON

    在 Java 應(yīng)用程序中,處理 XML 數(shù)據(jù)并將其轉(zhuǎn)換為 JSON 格式是很常見(jiàn)的任務(wù),這篇文章為大家整理了一下具體的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助
    2025-03-03
  • jenkins安裝及其配置筆記

    jenkins安裝及其配置筆記

    這篇文章主要介紹了jenkins安裝及其配置筆記,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作

    Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作

    這篇文章主要介紹了Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • JUC三大輔助類(lèi)CountDownLatch、CyclicBarrier和Semaphore詳解

    JUC三大輔助類(lèi)CountDownLatch、CyclicBarrier和Semaphore詳解

    這篇文章主要介紹了JUC三大輔助類(lèi)CountDownLatch、CyclicBarrier和Semaphore詳解,CountDownLatch 類(lèi)可以設(shè)置一個(gè)計(jì)數(shù)器,然后通過(guò) countDown 方法來(lái)進(jìn)行 減 1 的操作,使用 await 方法等待計(jì)數(shù)器不大于 0,然后繼續(xù)執(zhí)行 await 方法 之后的語(yǔ)句,需要的朋友可以參考下
    2024-01-01
  • Java String中移除空白字符的多種方式匯總

    Java String中移除空白字符的多種方式匯總

    這篇文章主要給大家介紹了關(guān)于Java String中移除空白字符的多種方式,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • linux中java獲取路徑的實(shí)例代碼

    linux中java獲取路徑的實(shí)例代碼

    在本篇文章里小編給大家整理的是一篇關(guān)于linux中java獲取路徑的實(shí)例代碼以及相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • java日期格式化YYYY-MM-dd遇坑指南小結(jié)

    java日期格式化YYYY-MM-dd遇坑指南小結(jié)

    本文主要介紹了java日期格式化YYYY-MM-dd遇坑指南小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論

平远县| 榆树市| 喜德县| 定西市| 慈利县| 阳山县| 青浦区| 上饶市| 长沙县| 镇安县| 绥芬河市| 蓝田县| 溆浦县| 尼木县| 益阳市| 嘉禾县| 新平| 高陵县| 余姚市| 高雄县| 平南县| 池州市| 武夷山市| 迁西县| 靖远县| 庆安县| 明水县| 高雄市| 监利县| 德化县| 康乐县| 长寿区| 汤原县| 大化| 项城市| 沙洋县| 新乐市| 自治县| 霸州市| 江津市| 托克托县|