api進階Day1文件的創建、刪除、訪問、設置過濾器並查詢。目錄的刪除、創建。

来源:https://www.cnblogs.com/Bafanqwq/archive/2022/08/15/16590080.html
-Advertisement-
Play Games

文件的創建: package file; import java.io.File; import java.io.IOException; /* create:創建 new:新 file:文件 使用File新建一個文件 / public class CreateNewFileDemo { publi ...


文件的創建:

package file;

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

/*
create:創建
new:新
file:文件

使用File新建一個文件

/
public class CreateNewFileDemo {
public static void main(String[] args) throws IOException {
//在當前項目目錄下新建一個文件:test.txt
//1創建一個File表示要創建的文件
File file = new File("./test.txt");
//2判斷該位置下是否已經存在了這個文件或目錄
/

boolean exists()
判斷當前File表示的文件或目錄是否真實存在,存在則返回true
/
if(file.exists()){
System.out.println("該文件已存在");
}else{
//3將該文件創建出來
/

createNewFile方法的作用是將當前File表示的文件在該位置創建出來
*/
file.createNewFile();//游標在這句代碼中按alt+回車
System.out.println("文件已創建");
}

}

}

文件的刪除:

package file;

import java.io.File;
import java.io.FileFilter;

/**

  • 獲取./src/file目錄中所有名字以"D"開始的文件
    */
    public class Test2 {
    public static void main(String[] args) {
    FileFilter filter = new FileFilter() {
    //只要file表示的文件的名字是以"D"開始的則接受
    public boolean accept(File file) {
    String name = file.getName();
    System.out.println("正在過濾:"+name);
    return name.startsWith("D");
    }
    };
    File dir = new File("./src/file");
    File[] subs = dir.listFiles(filter);
    for(int i=0;i<subs.length;i++){
    System.out.println(subs[i].getName());
    }
    }
    }

文件的訪問:

package file;

import java.io.File;

/**

  • java.io.File

  • File可以表示硬碟上的一個文件或目錄(本質保存的是一個抽象路徑)

  • File可以:

  • 1:訪問其表示的文件或目錄的屬性

  • 2:創建刪除文件或空目錄

  • 3:訪問一個目錄中的子項

  • File不可以:

  • 訪問文件數據
    */
    public class FileDemo {
    public static void main(String[] args) {
    //絕對路徑的優點是清晰明瞭,但是缺點是路徑寫死了,跨平臺行不好。
    // File file = new File("c:/Users/X/IdeaProjects/JSD2206_SE/demo.txt");
    //相對路徑的優點是有良好的跨平臺性。
    //“./”表示當前目錄,在IDEA中當前目錄指的是當前程式所在的項目目錄
    File file = new File("./demo.txt");

     //獲取file表示的文件或目錄的名字
     String name = file.getName();
     System.out.println(name);
    
     //獲取當前file表示的文件的大小(單位是位元組)
     long len = file.length();
     System.out.println("大小:"+len+"個位元組");
    
     /*
         can:能
         write:寫
         read:讀
      */
     boolean cw = file.canWrite();//是否可寫
     boolean cr = file.canRead();//是否可讀
     System.out.println("是否可寫:"+cw);
     System.out.println("是否可讀:"+cr);
    

    }
    }

讀取文件中所有的子項:

package file;

import java.io.File;

/**

  • 獲取一個目錄中的所有子項
    /
    public class ListFilesDemo {
    public static void main(String[] args) {
    //獲取當前目錄下的所有子項
    File dir = new File(".");
    /

    boolean isFile()
    判斷當前File對象表示的是否為一個文件

         boolean isDirectory()
         判斷當前File對象表示的是否為一個目錄
      */
     if(dir.isDirectory()){//判斷當前dir表示的是否為一個目錄
         /*
             File[] listFiles()
             將當前File對象表示的目錄中所有子項返回
          */
         File[] subs = dir.listFiles();
         System.out.println("當前目錄下共:"+subs.length+"個子項");
         for(int i=0;i<subs.length;i++){
             File sub = subs[i];
             System.out.println(sub.getName());
         }
     }
    

    }
    }

在文件中設置過濾器找出符合過濾器要求的子項:

package file;

import java.io.File;
import java.io.FileFilter;

/**

  • 重載的listFiles方法
  • File[] listFiles(FileFilter filter)
  • 該方法允許我們傳入一個文件過濾器,然後將當前File對象表示的目錄中所有滿足此過濾器要求的
  • 子項返回。
    /
    public class ListFilesDemo2 {
    public static void main(String[] args) {
    /

    獲取./src/file目錄中所有名字中含有“t”的文件
    /
    File dir = new File("./src/file");
    if(dir.isDirectory()){
    //使用匿名內部類創建一個文件過濾器
    FileFilter filter = new FileFilter() {
    /

    重寫accept方法(accept:接受)
    此方法的重寫原則是定義過濾器過濾File的條件。當參數file符合此過濾器
    的過濾條件時,方法應當返回為true。表達過濾器接受該file。
    */
    public boolean accept(File file) {
    String name = file.getName();
    // return name.indexOf("t")>=0;
    return name.contains("t");//contains:包含
    }
    };
    File[] subs = dir.listFiles(filter);
    for(int i=0;i<subs.length;i++){
    System.out.println(subs[i].getName());
    }
    }
    }
    }

目錄的創建:

package file;

import java.io.File;

/**

  • make:做

  • directory:目錄(文件夾)

  • 創建一個目錄
    */
    public class MkDirDemo {
    public static void main(String[] args) {
    //在當前目錄下新建一個目錄:demo
    // File dir = new File("./demo");
    // File dir = new File("demo");

     File dir = new File("./a/b/c/d/e/f");
     if(dir.exists()){
         System.out.println("該目錄已存在!");
     }else{
         /*
             mkdir()創建當前File表示的目錄,前提是該目錄所在的目錄必須存在。
             mkdirs()創建當前File表示的目錄,並會將所有不存在父目錄一同創建出來。
             實際開發中推薦使用mkdirs這個方法。
          */
    

// dir.mkdir();
dir.mkdirs();
System.out.println("該目錄已創建!");
}
}
}

目錄的刪除:

package file;

import java.io.File;

/**

  • 刪除一個目錄
    /
    public class DeleteDirDemo {
    public static void main(String[] args) {
    //刪除當前目錄下的demo目錄
    // File dir = new File("./demo");
    File dir = new File("./a");
    if(dir.exists()){
    /

    delete()方法在刪除目錄是要求該目錄必須是一個空目錄
    */
    dir.delete();
    System.out.println("該目錄已刪除!");
    }else {
    System.out.println("該目錄不存在!");
    }
    }
    }

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SQL 作為關係型資料庫的標準語言,是 IT 從業人員必不可少的技能之一。SQL 本身並不難學,編寫查詢語句也很容易,但是想要編寫出能夠高效運行的查詢語句卻有一定的難度。 查詢優化是一個複雜的工程,涉及從硬體到參數配置、不同資料庫的解析器、優化器實現、SQL 語句的執行順序、索引以及統計信息的採集等... ...
  • 概述 這是一個自定義色盤,根據點,直線和圓的幾何學加上hsv顏色模型完成 技術點 幾何: 圓的標準方程式:(x-a)²+(y-b)²=r² 直線一般方程式: 已知直線上的兩點P1(X1,Y1) P2(X2,Y2), P1 P2兩點不重合。 AX+BY+C=0 A = Y2 - Y1 B = X1 - ...
  • Android 知識體系 一、平臺架構 Google Android 平臺架構 Google Android 架構 Android 是一個針對多種不同設備類型打造的開放源代碼軟體堆棧。Android 的主要目的是為運營商、OEM 和開發者打造一個開放的軟體平臺,使他們能夠將創新理念變為現實,並推出能 ...
  • 原文:Kotlin學習快速入門(10)—— 重載運算符使用 - Stars-One的雜貨小窩 Kotlin中提供了基礎的運算符,但是只是針對基礎的數據類型,如Int,Double等 如果我們想讓兩個對象可以相加的功能,這個時候可以使用重載運算符的功能來實現 介紹 首先,先介紹下什麼是運算符,如以下代 ...
  • 區別一:存儲數據大小不同 1.cookie的存儲數據大小在不能超過4kb,每個頁面最多存儲20個cookie 2.localStorage能達到10mb,sessionStorage能達到5mb,雖然容量比cookie大,但是localStorage是同步執行,太大會影響渲染進度 區別二:相容性 1 ...
  • 本文是深入淺出 ahooks 源碼系列文章的第六篇,該系列已整理成文檔-地址。覺得還不錯,給個 star 支持一下哈,Thanks。 本文已收錄到個人博客中,歡迎關註~ 背景 大家在使用 useEffect 的時候,假如回調函數中使用 async...await... 的時候,會報錯如下。 看報錯, ...
  • 最近開發一款導航的項目需要行駛方向,這裡一般是gps會給我返回航向的,但是公司老系統的資料庫沒有這個數據,就只能自己計算咯 getAngle(lng_a,lat_a, lng_b, lat_b){ var a = (90 - lat_b) * Math.PI / 180; var b = (90 - ...
  • 一.簡介: 本文將完成一個真實業務中的設備上報數據的一個例子,完整的展示後臺服務接收到設備上報的數據後,將數據添加到時序資料庫,並且將數據查詢出來的一個例子。本文所有代碼已經上傳GitHub:https://github.com/Tom-shushu/work-study 下的 iotdb-demo ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...