JavaSE-文件操作

java.io.File

**File的每一個(gè)實(shí)例可以表示文件系統(tǒng)中的一個(gè)文件或者目錄,使用File可以:
1.訪問文件的目錄或者屬性(大小,名字和修改時(shí)間等)
2.操作文件或目錄(創(chuàng)建,刪除文件或目錄)
3.訪問目錄中的所有內(nèi)容,但是不可以訪問文件數(shù)據(jù)
**

File file = new File("demo.txt");//默認(rèn)在當(dāng)前目錄下
file.createNewFile();
long length = file.length();
String name = file.name();
boolean isFile = file.isFile();
boolean isHidden = file.isHidden();
System.out.println(length+""+name+""+isFile+""+isHidden);//0 demo.txt true false
long mod = file.lastModified();
Date date = new Date(mod);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("最后修改時(shí)間:"+sdf.format(date));//2016年6月12日 23:22:53
//刪除文件
if(file.exist()){
    file.delete();
}

使用File創(chuàng)建目錄

File dir = new File("demo");
if(!dir.exits()){
    dir.mkdir();
}
//在當(dāng)前目錄下創(chuàng)建目錄,若父目錄不存在則將不存在的父目錄一并創(chuàng)建
File dirs = new File(
   "a"+File.separator+
   "b"+File.separator+
   "c"+File.separator+
   "d"
);
if(!dirs.exists()){
    dirs.mkdirs();
}

刪除目錄 刪除目錄要求目錄中必須是空的,刪除目錄前要確認(rèn)目錄以空,或者先刪除目錄當(dāng)中的文件再刪除目錄。

File dir = new File("demo");
if(dir.exits()){
   dir.delete();
}

獲取當(dāng)前目錄下的所有子項(xiàng)

File dir = new FIle(".");
File[] dirs = dir.listFiles();
//遍歷
for(File file : subs){
    if(file.isFile()){
       System.out.println("文件:"+file.getName());
   }else{
      System.out.println("目錄:"+file.getName());
   }
}

獲取當(dāng)前目錄下以“.”開頭的文件

File dir = new File(".");
File[] subs = dir.listFiles(new FileFilter(){
   //FileFilter為一個(gè)過濾器,實(shí)現(xiàn)其accept方法,將返回滿足accept方法的文件
   @Override
   public boolean accept(File pathname){
      String name = pathname.getName();
      return name.startsWith(".");
   }
});
System.out.println(Arrays.toString(subs));//[.\.classpath, .\.project, .\.settings]

遞歸實(shí)現(xiàn)文件和目錄的刪除
遞歸-方法當(dāng)中調(diào)方法,使用時(shí)要注意條件的限制,不可使得遞歸條件百分百執(zhí)行,否則進(jìn)入死循環(huán)。一個(gè)有意思的例子是電影《盜夢(mèng)空間》,電影中小李子調(diào)用了做夢(mèng)的方法開始做夢(mèng),在夢(mèng)中又繼續(xù)調(diào)用做夢(mèng)的方法做第二層夢(mèng),以此類推。注意,夢(mèng)中夢(mèng)的風(fēng)險(xiǎn)就是無法分清現(xiàn)實(shí)和夢(mèng)境,在一個(gè)夢(mèng)中醒來不一定就是現(xiàn)實(shí)。影片最后的懸念也在于旋轉(zhuǎn)的陀螺,小李子以為他和孩子們團(tuán)聚了,然而陀螺并沒有停下來,如果陀螺真的是判斷依據(jù)的話小李子是肯定還在做夢(mèng)的,但是這個(gè)依據(jù)本身也存在爭議。由此可見,導(dǎo)演只是設(shè)置了一個(gè)模棱兩可的遞歸死循環(huán)。

File dir = new File("a");
deleteFile(dir);
public static void deleteFile(File f){
    if(f.isDirectory){
      File[] sub = f.listFiles();
      for(File file : sub){
        deleteFile(file);
      }
    }
    f.delete();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.創(chuàng)建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創(chuàng)建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,495評(píng)論 3 53
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,618評(píng)論 19 139
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 100,725評(píng)論 9 468
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,269評(píng)論 2 33
  • 2016年11月你做了些什么?有什么收獲?回顧一整月 整年甚至幾年?你的所得 所獲 所感 ?今天是11月的最后一天...
    melody靜閱讀 244評(píng)論 0 0

友情鏈接更多精彩內(nèi)容