日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java 文件操作

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文件操作——File

File表示目錄信息

  • listFiles方法
    • File的listFiles方法用于返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的文件。其方法定義:

      File[] listFiles()
    • 返回值:抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的文件和目錄。如果目錄為空,那么數組也將為空。如果抽象路徑名不表示一個目錄,或者發生 I/O 錯誤,則返回 null。

  • FileFilter接口
    • 通過listFiles方法我們可以獲取一個目錄下的所有子項,但有些時候我們并不希望獲取全部子項,而是想獲取部分滿足我們實際需求的子項時,我們可以使用File的重載方法:

      File[] listFiles(FileFilter filter)

        這里我們看到,該重載方法 要求我們傳入一個參數,其類型是FileFilter。什么是FileFilter呢? FileFilter是用于抽象路徑名的過濾器,說白了就是定義一個規律規則,那么結合listFiles方法,我們就可以將滿足此過濾規則的子項返回,其他則忽略。

    • FileFilter是一個接口,所以當我們需要定義某種過濾規則時,我們可以定義一個類來實現這個接口,而此接口的實例可傳遞給 File 類的listFiles(FileFilter) 方法。

      例如:

      File[] list = dir.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {return pathname.getName().startsWith(".");}
      });

      該方法的參數FileFilter實例的accept方法并進行過濾,listFiles方法會將所有accept方法返回true的子項保留并返回。這個例子里我們會將dir中子項的名字以"."開頭的返回。

文件操作——RandomAccessFile

創建對象

簡介

Java提供了一個可以對文件隨機訪問的操作,訪問包括讀和寫操作。該類名為RandomAccessFile。該類的讀寫是基于指針的操作。

只讀模式

  RandomAccessFile在對文件進行隨機訪問操作時有兩個模式,分別為只讀模式(只讀取文件數據),和讀寫模式(對文件數據進行讀寫)。
只讀模式:

  RandomAccessFile(File file,String mode)RandomAccessFile(String filename,String mode)

  在創建RandomAccessFile時,其提供的構造方法要求我們傳入訪問模式: 其中構造方法的第一個參數是需要訪問的文件,而第二個參數則是訪問模式:

r”:字符串”r”表示對該文件的訪問是只讀的。

讀寫模式
  創建一個基于文件訪問的讀寫模式的RandomAccessFile我們只需要在第二個參數中傳入”rw”即可。

RandomAccessFile raf = new RandomAccessFile(file,”rw”);

那么這時在使用RandomAccessFile對該文件的訪問就是又可讀又可寫的。

字節數據讀寫操作

  • write(int d)方法

  • void write(int d)

  RandomAccessFile提供了一個可以向文件中寫出字節的方法:
該方法會根據當前指針所在位置處寫入一個字節,是將參數int的”低8位”寫出。

  • read()方法

  • int read()

  RandomAccessFile提供了一個可以從文件中讀取字節的方法:
該方法會從RandomAccessFile當前指針位置讀取一個byte(8位) 填充到int的低八位, 高24位為0, 返回值范圍正數: 0~255, 如果返回-1表示讀取到了文件末尾EOF(EOF:End Of File)! 每次讀取后自動移動文件指針, 準備下次讀取。

  • write(byte[] d)方法

  • void write(byte[] d)

    RandomAccessFile提供了一個可以向文件中寫出一組字節的方法:

該方法會根據當前指針所在位置處連續寫出給定數組中的所有字節,與該方法相似的還有一個常用方法:

void write(byte[] d,int offset,int len)

該方法會根據當前指針所在位置處連續寫出給定數組中的部分字節,這個部分是從數組的offset處開始,連續len個字節。

  • read(byte[] d)方法

  • int read(byte[] b)

    RandomAccessFile提供了一個可以從文件中批量讀取字節的方法:
    該方法會從文件中嘗試最多讀取給定數組的總長度的字節量,并從給定的字節數組第一個位置開始,將讀取到的字節順序存放至數組中,返回值
    為實際讀取到的字節量 。

  • close方法

    RandomAccessFile在對文件訪問的操作全部結束后,要調用close()方法來釋放與其關聯的所有系統資源。

    void close()

    例如:

    RandomAccessFile raf = new RandomAccessFile(file,”rw”);…..//讀寫操作
    raf.close();//訪問完畢后要關閉以釋放系統資源。

    ?

文件指針操作

getFilePointer方法

RandomAccessFile的讀寫操作都是基于指針的,也就是說總是在指針當前所指向的位置進行讀寫操作。
RandomAccessFile提供了一個可以獲取當前指針位置的方法:

long getFilePointer()

RandomAccessFile在創建時默認指向文件開始(第一個字節),通過getFilePointer方法獲取指針位置時值是"0"。
例如:

  RandomAccessFile raf = new RandomAccessFile(file,”rw”);System.out.println(raf.getFilePointer());//0raf.write(‘A’);//寫出一個字節后,指針自動向后移動到下一個字節位置System.out.println(raf.getFilePointer());//1raf.writeInt(3);System.out.println(raf.getFilePointer());//5raf.close();

seek方法

RandomAccessFile的提供了一個方法用于移動指針位置。

void seek(long pos)

使用該方法可以移動指針到指定位置。
例如:

  RandomAccessFile raf = new RandomAccessFile(file,”rw”);System.out.println(raf.getFilePointer());//0raf.write(‘A’);//指針位置1raf.writeInt(3);//指針位置5raf.seek(0);//將指針移動到文件開始處(第一個字節的位置)System.out.println(raf.getFilePointer());//0raf.close();

skipBytes方法

RandomAccessFile的提供了一個方法可以嘗試跳過輸入的 n 個字節以丟棄跳過的字節,方法定義為:

int skipBytes(int n)

該方法可能跳過一些較少數量的字節(可能包括零)。這可能由任意數量的條件引起;在跳過n個字節之前已到達文件的末尾只是其中的一種可
能。此方法不拋出 EOFException。返回跳過的實際字節數。如果 n 為負數,則不跳過任何字節。

轉載于:https://www.cnblogs.com/yangliguo/p/8456879.html

總結

以上是生活随笔為你收集整理的java 文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。