package com.heima.file; import java.io.File; public class Demo1_File { /** * File(String pathname):根據一個路徑獲得File對象 * File(String parent, String child):根據一個目錄和一個子文件/目錄獲得File對象 * File(File parent, String child):根據一個父File對象和一個子文件/目錄獲得File對象 */ public static void main(String[] args) { //demo1(); //demo2(); File parent = new File("F:\\雙元課堂\\day19\\video"); String child = "001_今日內容.avi"; File file = new File(parent, child); System.out.println(file.exists()); System.out.println(parent.exists()); } public static void demo2() { String parent = "F:\\雙元課堂\\day19\\video"; String child = "001_今日內容.avi"; File file = new File(parent,child); System.out.println(file.exists()); } public static void demo1() { File file = new File("F:\\雙元課堂\\day19\\video\\001_今日內容.avi"); System.out.println(file.exists()); File file2 = new File("xxx.txt"); System.out.println(file2.exists()); File file3 = new File("yyy.txt"); System.out.println(file3.exists()); } }
B:案例演示java
File類的建立功能編程
注意事項:windows
package com.heima.file; import java.io.File; import java.io.IOException; public class Demo2_FileMethod { public static void main(String[] args) throws IOException { //demo1(); File dir1 = new File("aaa"); System.out.println(dir1.mkdir()); File dir2 = new File("bbb.txt"); //這樣寫是能夠的,文件夾也是能夠有後綴的 System.out.println(dir2.mkdir()); File dir3 = new File("ccc\\ddd"); System.out.println(dir3.mkdirs()); //建立多級目錄 } public static void demo1() throws IOException { File file = new File("yyy.txt"); System.out.println(file.createNewFile()); //若是沒有就建立,返回true File file2 = new File("zzz"); System.out.println(file2.createNewFile()); } }
package com.heima.file; import java.io.File; public class Demo3_FileMethod { public static void main(String[] args) { //demo1(); File file1 = new File("yyy.txt"); System.out.println(file1.delete()); File file2 = new File("aaa"); System.out.println(file2.delete()); File file3 = new File("ccc"); //若是刪除一個文件夾,那麼文件夾必須是空的 System.out.println(file3.delete()); } public static void demo1() { File file1 = new File("ooo.txt"); File file2 = new File("D:\\xxx.txt"); System.out.println(file1.renameTo(file2)); } }
package com.heima.file; import java.io.File; public class Demo4_FileMethod { /** 案例演示 * File類的判斷功能 */ public static void main(String[] args) { //demo1(); File file = new File("zzz"); file.setReadable(false); System.out.println(file.canRead()); //windows系統認爲全部的文件都是可讀的 file.setWritable(true); System.out.println(file.canWrite()); //windows系統能夠設置爲不可寫 File file2 = new File("aaa.txt"); System.out.println(file2.isHidden()); //判斷是不是隱藏文件 System.out.println(file.isHidden()); } public static void demo1() { File dir1 = new File("ccc"); System.out.println(dir1.isDirectory()); //判斷是不是文件夾 File dir2 = new File("zzz"); System.out.println(dir2.isDirectory()); System.out.println(dir1.isFile()); //判斷是不是文件 System.out.println(dir2.isFile()); } }
package com.heima.file; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class Demo5_FileMethod { /** * * A:獲取功能 * public String getAbsolutePath():獲取絕對路徑 * public String getPath():獲取路徑 * public String getName():獲取名稱 * public long length():獲取長度。字節數 * public long lastModified():獲取最後一次的修改時間,毫秒值 * public String[] list():獲取指定目錄下的全部文件或者文件夾的名稱數組 * public File[] listFiles():獲取指定目錄下的全部文件或者文件夾的File數組 */ public static void main(String[] args) { //demo1(); File dir = new File("F:/雙元課堂/day19/video"); String[] arr = dir.list(); //僅爲了獲取文件名 for (String string : arr) { System.out.println(string); } File[] subFiles = dir.listFiles(); for (File file : subFiles) { //獲取文件對象 System.out.println(file); } } public static void demo1() { File file1 = new File("ccc.txt"); File file2 = new File("D:\\雙元課堂\\day19\\ccc.txt"); //System.out.println(file1.getAbsolutePath()); //獲取絕對路徑 //System.out.println(file2.getAbsolutePath()); //System.out.println(file1.getPath()); //獲取構造方法中傳入路徑 //System.out.println(file2.getPath()); // System.out.println(file1.getName()); //獲取文件或者文件的名字 // System.out.println(file2.getName()); // // System.out.println(file1.length()); Date d = new Date(file1.lastModified()); //文件的最後修改時間 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); System.out.println(sdf.format(d)); } }
package com.heima.test; import java.io.File; import java.io.FilenameFilter; public class Test3 { /** * @param args * * A:案例演示 * 需求:判斷E盤目錄下是否有後綴名爲.jpg的文件,若是有,就輸出該文件名稱 */ public static void main(String[] args) { File dir = new File("E:\\"); // String[] arr = dir.list(); //獲取e盤下全部的文件或文件夾 // for (String string : arr) { // if(string.endsWith(".jpg")) { // System.out.println(string); // } // } /*File[] subFiles = dir.listFiles(); //獲取e盤下全部的文件或文件夾對象 for (File subFile : subFiles) { if(subFile.isFile() && subFile.getName().endsWith(".jpg")) { System.out.println(subFile); } }*/ String[] arr = dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { //System.out.println(dir); //System.out.println(name); File file = new File(dir, name); return file.isFile() && file.getName().endsWith(".jpg"); } }); for (String string : arr) { System.out.println(string); } } }
一、本身設計1-2個需求,並完成該需求!需求中應儘量包含File類的建立、判斷、刪除、獲取! 課後由導師隨機抽查! 二、使用文件過濾器篩選將指定文件夾下的小於200K的小文件,並打印! package cn.itcast; import java.io.File; import java.io.FilenameFilter; /* * 需求:二、使用文件過濾器篩選將指定文件夾下的小於200K的小文件,並打印! */ public class homework2 { public static void main(String[] args) { File file = new File("A"); String names[] = file.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { File newFile = new File(dir, name); // 在一些時候咱們不能等着程序給咱們顯示結果,而是在編程的過程當中,也要對一些細節進行檢驗,以下一步就是爲了確保獲得單位爲k的文件的數據大小 // System.out.println(newFile.length()/1024); return (newFile.length() / 1024 < 200) ? true : false; } }); for (String name : names) { System.out.println(name); } } }