Java-File類
阿新 • • 發佈:2018-10-08
根據 anon pub one can 基本操作 ica root args
1 import java.io.File; 2 import java.io.IOException; 3 /** 4 * 文件基本操作 5 */ 6 public class FileTest { 7 public static void main(String[] args) { 8 //根據路徑,創建一個文件對象 9 File file = new File("E:/printTest.txt"); 10 //該文件對象提供了對文件判斷和操作的方法 11 //判斷文件是否存在 12 if(file.exists()) {13 //文件重命名 14 file.renameTo(new File("E:/print.txt")); 15 //同分區之間的移動 16 file.renameTo(new File("E:/test/print.txt")); 17 //判斷是否為文件 18 Boolean flag = file.isFile(); 19 System.out.println(flag); 20 //判斷是否為文件夾 21 Boolean flag1 = file.isDirectory();22 System.out.println(flag1); 23 //刪除文件 24 file.delete(); 25 }else { 26 try { 27 //如果不存在該文件,則可以根據路徑創建文件 28 file.createNewFile(); 29 } catch (IOException e) { 30 e.printStackTrace(); 31 }32 } 33 } 34 }
1 import java.io.File; 2 /** 3 * 文件常用屬性 4 */ 5 public class FileTest1 { 6 public static void main(String[] args) { 7 File file = new File("E:/print.txt"); 8 boolean exists = file.exists(); //文件是否存在 9 boolean directory = file.isDirectory(); //是否為文件夾 10 boolean canRead = file.canRead(); //文件是否可讀 11 boolean canWrite = file.canWrite(); //文件是否可寫 12 String name = file.getName(); //文件名稱 13 String path = file.getPath(); //文件路徑 14 String absolutePath = file.getAbsolutePath(); //文件的絕對路徑 15 16 // 文件的父級路徑 17 // 當創建的file上一級目錄為空時返回null 例如:File file = new File("test.txt"); 18 String parent = file.getParent(); 19 // 通過以下方式可以獲取文件的絕對路徑,然後在獲取父級路徑 20 String parent2 = new File(absolutePath).getParent(); 21 22 long size = file.length();// byte 23 float size1 = (float)file.length()/1000;// KB 24 // 文件是否被隱藏 linux中文件以.開頭則為隱藏 window中查看文件屬性查看是否隱藏 25 boolean hidden = file.isHidden(); 26 } 27 }
1 import java.io.File; 2 3 /** 4 * 文件讀寫屬性 5 */ 6 public class FileTest2 { 7 public static void main(String[] args) { 8 File file = new File("E:/print.txt"); 9 10 file.setWritable(true);//設置可寫 11 file.setWritable(false);//設置不可寫 12 13 file.setReadable(true);//設置可讀 14 file.setReadable(false);//設置不可讀 15 16 file.setReadOnly();//設置只讀 17 } 18 }
1 import java.io.File; 2 /** 3 * 遍歷文件夾 4 */ 5 public class FileTest3 { 6 public static void main(String[] args) { 7 printFiles(new File("E:/test/"),1); 8 } 9 public static void printFiles(File dir,int tab) { 10 if(dir.isDirectory()) {//判斷是否為文件夾 11 File[] listFiles = dir.listFiles();//獲取文件夾中所有的文件 12 //遍歷獲取的所有文件 13 for (int i = 0; i < listFiles.length; i++) { 14 for (int j = 0; j < tab; j++) { 15 System.out.print("|--");//目錄結構的分隔符 16 } 17 System.out.println(listFiles[i].getName()); 18 //判斷遍歷的元素是否為文件夾,如果是則繼續調用printFiles()方法 19 if(listFiles[i].isDirectory()) { 20 printFiles(listFiles[i],tab+1); 21 } 22 } 23 } 24 } 25 }
1 import java.io.File; 2 import java.io.IOException; 3 import java.nio.file.Path; 4 5 /** 6 * File類方法介紹 7 */ 8 public class FileTest4 { 9 public static void main(String[] args) throws IOException { 10 File file = new File("E:\\test\\"); 11 12 System.out.println(File.separator);//文件的路徑分隔符 13 14 //路徑操作 15 System.out.println(file.getName());//如果該路徑為文件,則獲取文件名稱,如果是目錄,則獲取目錄名 16 System.out.println(file.getParent());//獲取父級路徑的字符串 17 System.out.println(file.getParentFile());//獲取父級路徑的File對象 18 System.out.println(file.getPath());//獲取抽象路徑為字符串路徑 19 System.out.println(file.toURI());//將抽象路徑轉成uri file:/E:/test/2/1.txt 20 21 System.out.println(file.getAbsolutePath());//獲取絕對路徑的字符串路徑,如果抽象路徑不是絕對路徑,則默認添加上工程路徑 22 System.out.println(file.getAbsoluteFile());//獲取絕對路徑後轉成File 23 System.out.println(file.getCanonicalPath());//返回規範路徑字符串格式 24 System.out.println(file.getCanonicalFile());//返回規範路徑File對象 25 26 //判斷 27 System.out.println(file.isAbsolute());//判斷是否為絕對路徑 28 System.out.println(file.canRead());//判斷是否可讀 29 System.out.println(file.canWrite());//判斷是否可寫 30 System.out.println(file.canExecute());//是否可執行; 31 System.out.println(file.exists());//判斷是否存在 32 System.out.println(file.isDirectory());//判斷是否為目錄 33 System.out.println(file.isFile());//判斷是否為文件 34 System.out.println(file.isHidden());//判斷是否隱藏 35 36 //文件訪問權限設置 37 file.setReadOnly();//設置文件只讀 38 file.setReadable(true);//設置文件可讀 39 file.setReadable(true, true);//第一個是否可讀,第二個是否只讀 40 file.setWritable(true);//設置文件可寫 41 file.setWritable(true, true);//文件只寫,第一個是否可寫,第二個是否只寫 42 file.setExecutable(true);//設置文件可執行 43 file.setExecutable(true, true);//第一個是否可執行,第二個文件所屬者可執行 44 45 //最後一次修改時間的獲取和設置 46 System.out.println(file.lastModified());//獲取文件最後修改時間 47 System.out.println(file.setLastModified(123456L));//設置文件最後一次修改時間 48 49 System.out.println(file.length());//如果是文件,則返回文件內容大小字節數,如果是目錄則返回0 50 51 //創建目錄 52 file.mkdir();//如果抽象路徑是目錄,則創建該目錄 53 file.mkdirs();//創建多級目錄,包含父級目錄,如果創建失敗,可能已經創建了父級目錄 54 File.createTempFile("aaa", ".temp", file);//指定前綴和後綴,根據File的抽象路徑目錄,創建臨時文件 55 56 //創建文件和刪除 57 System.out.println(file.createNewFile());//文件不存時根據抽象路徑創建 58 System.out.println(file.delete());//刪除目錄或者文件,如果是文件,則直接刪除,如果是目錄,空目錄則刪除返回true,如果不是空目錄,返回false 59 file.deleteOnExit();//強制刪除,不管目錄下是否為空 60 61 //獲取抽象路徑下的目錄和文件名稱或者所有的抽象路徑 62 file.list();//返回抽象路徑下所有文件名或者目錄名的字符串數組(接收參數FilenameFilter) 63 file.listFiles();//返回抽象路徑下所有文件或者目錄的抽象路徑File數組(FileFilter或者FilenameFilter) 64 65 file.renameTo(new File("2")); 66 67 //文件系統操作 68 File[] listRoots = file.listRoots(); //獲取系統所有根目錄 C:\ D:\ E:\ 69 long totalSpace = file.getTotalSpace();//獲取文件所在根目錄總容量 70 long freeSpace = file.getFreeSpace();//獲取文件所在磁盤的可用空間大小 71 long usableSpace = file.getUsableSpace();//獲取文件所在磁盤已經使用的空間大小 72 73 74 int compareTo = file.compareTo(new File("E:\\test\\"));//比較兩個目錄,返回0表示路徑相同 75 boolean equals = file.equals(new File("E:\\test\\"));//比較兩個目錄,返回true表示路徑相同,否則返回false 76 77 file.toString();//返回抽象路徑的字符串路徑,調用的getPath()方法 78 Path path = file.toPath();//抽象路徑轉成Path對象 79 } 80 }
Java-File類