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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 文件操作 File 及 RandomAccessFile

發布時間:2024/4/30 java 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 文件操作 File 及 RandomAccessFile 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、 File類概述

  • 一個代表文件或目錄的類
  • 目錄 : 只是將一個字符串標記為一個目錄 ?, 路徑所占的內存空間大小為0。
二、 重要方法
  • 創建
    • createNewFile() : 文件不存在時,創建一個文件 , 要求存放這個文件的目錄真實存在 ? ,不能創建目錄。
    • mkdri() : 創建目錄?
    • mkdris() : 創建多級目錄?
  • 刪除
    • deleted() : 刪除目錄文件
  • 判斷
    • isDrictory() : 判斷是否是一個目錄
    • isFile () : 判斷是否是一個文件
    • canWrite() : 判斷文件是否可寫
    • canReade() : 判斷文件是否可讀
    • exists() ; 判斷文件是否真實存在
    • canExecute() : 判斷文件是否可執行
    • isHidden () : 判斷文件是否隱藏
  • 獲取
    • getName() : ?獲取文件的名字 。 ?底層實現: 獲取路徑中“/"最后一次出現的位置,從這個位置的下一位截取后返回文件名。
    • listFiles() : 獲取目錄中所有目錄和文件組成的集合
    • getAbsoluteFile() : 獲取這個文件的絕對路徑
    • getParent() : 獲取父路徑 ?, 底層實現:?獲取路徑中“/"最后一次出現的位置,從0到這個位置開始截取。
    • getPath() : 獲取路徑參數 。 ? 參數傳進去是什么樣子,獲取到就是什么樣子
    • lastModifie() : 獲取最后一次修改時間
    • list() : 獲取當前目錄下所以文件和目錄組成的數組
  • 設置
    • setWriteable() : 設置文件權限為可寫 。
    • renameTo() : 重命名
  • 練習:/**文件練習* 用遞歸的方式刪除一個目錄及目錄下所有的文件* */ public class FileTest_01 {public static void main(String[] args) {//C:\\Users\\user\\Desktop\\雜七雜八-定時清理 - 副本File f = new File("C:\\Users\\user\\Desktop\\雜七雜八-定時清理 - 副本");delFile(f);System.out.println("執行完成");}public static void delFile(File f){//判斷參數是否為空if(f == null){throw new NullPointerException("該路徑為錯誤路徑");} //判斷是否是一個目錄if(f.isDirectory()){File[] listFiles = f.listFiles();for(File ff : listFiles){delFile(ff);}}//刪除當前目錄f.delete();} }
  • 練習:/** 記錄某一種格式文件的個數* * */ public class FileTest_02 {private static int count = 0; public static void main(String[] args) { // C:\\Users\\user\\Desktop\\雜七雜八-定時清理 - 副本File f = new File("C:\\Users\\user\\Desktop\\筆記 - 副本");getCount(f);System.out.println("該目錄下txt文件的個數為: "+count);}private static void getCount(File f) {//判斷路徑是否為空if(f == null){throw new NullPointerException("該路徑為錯誤路徑");}//判斷是否是一個 目錄if(f.isDirectory()){File[] listFiles = f.listFiles();for(File ff : listFiles){getCount(ff);}}else{//如果是文件 ,判斷文件格式 ,并計數String name = f.getName();if(name.endsWith(".txt")){count++;}} } }
  • 練習:/** 提取一個目錄下所有的某一格式的文件* */ public class FileTest_03 {private static File toFile = new File("C:\\Users\\user\\Desktop\\哈哈"); // private static File toFile1 = new File("C:\\Users\\user\\Desktop\\哈哈2");public static void main(String[] args) {File f = new File("C:\\Users\\user\\Desktop\\筆記 - 副本 (3)");extr(f);System.out.println("執行完畢!");}private static void extr(File f) {//判斷文件是否為空if(f == null){throw new NullPointerException("該路徑為錯誤路徑");}//判斷是否是一個目錄if(f.isDirectory()){File[] listFiles = f.listFiles();for(File ff : listFiles){extr(ff);}}else{//如果不是目錄 則判斷文件類型并挪動if(f.getName().endsWith(".txt")){//獲取文件真正的名字String name = f.getName();int index = name.lastIndexOf(".");String realName = name.substring(0, index);//過濾目標目錄 判斷是否有重名文件FilenameFilter filter = new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {return name.matches(realName+"\\d*\\.txt");}};File[] list = toFile.listFiles(filter);System.out.println(list.length);//開始挪動f.renameTo(new File(toFile , realName+(list.length>0?list.length:"")+".txt"));}}} }
三、RandomAccessFile
  • 一個可以對文件進行讀寫的類 ?---- ? ?需要給指定的對象指定對應的權限
  • 操作文件時實際上是把這個文件看做一個大型的字節數組 , 默認從第0為開始操作。
  • 示例:public class RandomAccessFileDemo1 {public static void main(String[] args) throws Exception {// r --- 讀取// w --- 寫入// d --- 同步更新// 如果文件不存在,則創建該文件// 如果文件已存在,直接操作該文件RandomAccessFile raf = new RandomAccessFile("E:\\a.txt", "rw");// 跳過指定的字節個數raf.seek(7);// 寫出數據raf.write("abc".getBytes());// 將指針歸零raf.seek(0);// 表示讀取一個字節---如果讀取到文件的末尾會返回一個-1// int i = raf.read();// System.out.println(i);// int i = -1;//// while ((i = raf.read()) != -1) {// System.out.println(i);// }// 構建了緩沖區byte[] bs = new byte[8];int len = -1;// read(byte[] bs)---返回值表示讀取到的字節個數while ((len = raf.read(bs)) != -1) {System.out.println(new String(bs, 0, len));}// 當一個RandomAccessFile對象在操作這個文件的時候,不允許別的對象操作raf.close();}}
  • 練習:/** 復制文件* */ public class RandomAccessFileTest_01 {public static void main(String[] args) throws IOException {//源文件File of = new File("C:\\Users\\user\\Desktop\\哈哈\\1、Django之url函數.txt");//目標文件File nf = new File("C:\\Users\\user\\Desktop\\暫存\\1.txt");//創建RandomAccessFile對象并指向源文件RandomAccessFile rafo = new RandomAccessFile(of, "rw");//創建RandomAccessFile對象并指向新文件RandomAccessFile rafn = new RandomAccessFile(nf, "rw");//構建緩沖區byte[] bs = new byte[1024*1024*15];int len = -1;//讀取文件while(( len = rafo.read(bs)) != -1){//將讀取到的字節流寫入到目標文件中rafn.write(bs, 0, len);}//關閉流資源rafn.close();rafo.close();System.out.println("復制完畢");} }

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

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

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