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

一起來了解Java的File類和IO流

 更新時間:2022年04月06日 17:34:26   作者:靜靜子?  
這篇文章主要為大家詳細介紹了Java?File類和IO流,在Java學習中,file類與io流是非常重要的部分,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1.IO流介紹

IO流可以用到的地方很多,就比如設計模式、下載、傳輸?shù)鹊?。學好IO流,為之后的進一步學習打下基礎,那么,先來說說什么是流?

流是一個抽象的概念,當程序讀取數(shù)據(jù)時,就會開啟一個通往數(shù)據(jù)源的流,這個數(shù)據(jù)源可以是文件、內(nèi)存或者是網(wǎng)絡鏈接;當程序?qū)懭霐?shù)據(jù)時,就會開啟一個通往目的地的流。

java中把不同到的來源或者目的地的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流 

本質(zhì):就是對數(shù)據(jù)的傳輸,數(shù)據(jù)的一個結合,有方向性

IO流體系結構

image.png

流的實現(xiàn)類:

image.png

2.Java中流的分

2.1按流向分:

  • 輸入流:程序可以從中讀取數(shù)據(jù)的流
  • 輸出流:程序能向其中寫入數(shù)據(jù)的流

圖片 1.png

輸入流:從數(shù)據(jù)源讀取數(shù)據(jù)流到程序(數(shù)據(jù)源:磁盤/U盤/網(wǎng)絡/鍵盤)

輸出流:從程序?qū)懭氲侥康牡兀康牡兀捍疟P/U盤/網(wǎng)絡/顯示器)

2.2按數(shù)據(jù)傳輸單位分:

字節(jié)流:以字節(jié)為單位傳輸數(shù)據(jù)的流

字符流:以字符為單位傳輸數(shù)據(jù)的流

2.3按功能分:

節(jié)點流:用于直接操作目標設備的流

過濾流:對一個已存在的流進行包裝,以提供更強大和靈活的讀寫功能

3.File類介紹

IO流從文件中輸入輸出,至始至終都離不開文件,所以先來說說文件file類。

3.1file類的作用

File類主要作用是對文件和目錄的抽象表示,該類主要是對目錄和文件進行創(chuàng)建、修改、刪除、過濾等造作

3.2file類構造函數(shù)

File(String pathname) //將路徑字符串實例化File實例
File(String parent, String child) //從父路徑名和子路徑名來構建file實例
File(File parent, String child) //根據(jù)父路徑File實例和子路徑名來構建實例

  //pathname
        File img1 = new File("/Users/gongdezhe/Desktop/IO/img1.png");
?
        //parent,  child
        File img2 = new File("/Users/gongdezhe/Desktop/IO", "img2.png");
?
?
        //File parent, String child
        File parent = new File("/Users/gongdezhe/Desktop/IO");
        File sql = new File(parent, "SQL.txt");

3.3絕對路徑和相對路徑

  • 絕對路徑:從盤符開始的路徑,表示一個完成的路徑 (windows:C:\ linux /mac: / )
  • 相對路徑:不帶盤符的路徑即是相對路徑 "."表示當前路徑 “..”表示父路徑

分隔符:

windows分隔符:\

mac分割符:/

java中有常量分隔符:File.separator ;*//根據(jù)系統(tǒng)不同自動生成對應分隔符 *String path = "test"+File.separator+"test.txt";

//windows test\test.txt **//linux test/test.txt

3.3File常見的方法

3.3.1創(chuàng)建和刪除

 File test = new File("/Users/gongdezhe/Desktop/IO/sql2.txt");
?
        try {
            public boolean createNewFile() throws IOException
            // 創(chuàng)建新文件 當文件不存在時創(chuàng)建該文件并返回true,當文件存在是則返回false
            boolean newFile = sql2.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        boolean mkdir()
        // 通過抽象路徑來創(chuàng)建目錄,創(chuàng)建多級目錄時,mkdir創(chuàng)建失敗
        test.mkdir();
?
        boolean mkdirs()
        //創(chuàng)建目錄 創(chuàng)建多級目錄
        test.mkdirs();
?
        //刪除目錄和文件
         test.delete();

注意:創(chuàng)建文件時,如果文件不存在,則創(chuàng)建新文件,如果存在,則返回false

創(chuàng)建文件時,文件的父目錄不存在時,創(chuàng)建文件會失敗

3.3.2文件獲取

       String getAbsolutePath()
       //獲取當前文件或目錄的絕對路徑
        test.getAbsolutePath();
        System.out.println(test.getAbsolutePath());
?
        String getPath()
        //將抽象路徑名轉(zhuǎn)換為路徑字符串
        test.getPath();
        System.out.println(test.getPath());
?
        String getName()
        //獲取文件或者是目錄的名稱
         test.getName();
        System.out.println(test.getName());
?
        long length()
        //獲取文件的字節(jié)數(shù)
        test.length();
        System.out.println(test.length());
?
        String[] list()
        //返回目錄中文件和目錄的名稱的字符串數(shù)組
        String[] list = test.list();
        for (String i:list) {
            System.out.println(i);
        }
?
        File[] listFiles()
        //返回目錄中文件和目錄的名稱file實例數(shù)組
        File[] files = test.listFiles();

3.3.3過濾功能的接口方法

public interface FilenameFilter {
    //參數(shù)為目錄和指定過濾名稱
    //返回結果 true: 可以返回  false:不能返回
    boolean accept(File dir, String name);
}

之后會持續(xù)更新,包括集合、java基礎知識等,適合剛接觸學習的人。

到此這篇關于一起來了解Java的File類和IO流的文章就介紹到這了,更多相關Java File類和IO流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • DoytoQuery中的關聯(lián)查詢方案示例詳解

    DoytoQuery中的關聯(lián)查詢方案示例詳解

    這篇文章主要為大家介紹了DoytoQuery中的關聯(lián)查詢方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • idea每次修改代碼都需要重新install的問題

    idea每次修改代碼都需要重新install的問題

    這篇文章主要介紹了idea每次修改代碼都需要重新install的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Springboot中使用lombok的@Data注解方式

    Springboot中使用lombok的@Data注解方式

    這篇文章主要介紹了Springboot中使用lombok的@Data注解方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring AOP 實現(xiàn)自定義注解的示例

    Spring AOP 實現(xiàn)自定義注解的示例

    這篇文章主要介紹了Spring AOP 實現(xiàn)自定義注解的示例,幫助大家更好的理解和學習使用spring框架,感興趣的朋友可以了解下
    2021-03-03
  • Spring?@InitBinder注解使用及原理詳解

    Spring?@InitBinder注解使用及原理詳解

    這篇文章主要為大家介紹了Spring?@InitBinder注解使用及原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 詳解Java中的阻塞隊列

    詳解Java中的阻塞隊列

    在去年的面試過程中,被面試官問道“阻塞隊列”這個問題,因為當時并沒有對此問題進行深入理解,只是按照自己的理解說明了該問題,最后面試結果也不太好,今天對該問題進行簡要的面試并記錄如下;如有錯誤,歡迎指正,需要的朋友可以參考下
    2021-06-06
  • Java多線程 ThreadLocal原理解析

    Java多線程 ThreadLocal原理解析

    這篇文章主要介紹了Java多線程 ThreadLocal原理,ThreadLoal 變量,線程局部變量,同一個 ThreadLocal 所包含的對象,在不同的 Thread 中有不同的副本,下面文章也是圍繞Java多線程 ThreadLocal展開內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • 詳解spring中aop不生效的幾種解決辦法

    詳解spring中aop不生效的幾種解決辦法

    這篇文章主要介紹了詳解spring中aop不生效的幾種解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • 淺談用java實現(xiàn)事件驅(qū)動機制

    淺談用java實現(xiàn)事件驅(qū)動機制

    這篇文章主要介紹了淺談用java實現(xiàn)事件驅(qū)動機制,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Spring Batch 入門示例

    Spring Batch 入門示例

    本文將向您展示如何使用Spring Boot創(chuàng)建一個的Spring Batch的Hello World示例。對和我一樣入門的有一定的幫助,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評論