########################################IO流: IO:用於處理設備上的數據的技術。設備:記憶體,硬碟,光碟 流:系統資源,Windows系統本身就可以操作的設備。各種語言只是使用系統平臺的這個資源。並對外提供了各種語言自己的操作功能,這些功能最終調用的是系統資 ...
########################################
IO流:
IO:用於處理設備上的數據的技術。設備:記憶體,硬碟,光碟
流:系統資源,Windows系統本身就可以操作的設備。各種語言只是使用系統平臺的這個資源。並對外提供了各種語言自己的操作功能,這些功能最終調用的是系統資源,使用完資源一定要記住:釋放。
File類直接有了分隔符:File.separator
"c:"+File.separator+"a.txt"
################################################文件基本方法
File file = new File("F:"+File.separator+"eclipse_javaCode"+File.separator+ "day21"+File.separator+"src"+File.separator+"day21"+File.separator+ "shangxin.txt"); String file_name = file.getName(); //獲取文件名 System.out.println(file_name); //shangxin.txt long file_size = file.length(); System.out.println(file_size); String file_parent_path = file.getParent(); //獲取父目錄的路徑 System.out.println(file_parent_path); ########### String file_path = file.getAbsolutePath(); //獲取絕對路徑 System.out.println(file_path); //F:\eclipse_javaCode\day21\src\day21\shangxin.txt long lc = file.lastModified(); //獲取最後一次修改的時間 Date date = new Date(); DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); String lc_str = df.format(date); System.out.println(lc_str); //2018年2月23日 星期五 下午09時59分40秒 CST boolean b = file.isHidden(); //判斷文件是否隱藏 System.out.println(b); b = file.createNewFile(); //創建文件,文件存在創建失敗,沒有該盤創建失敗 System.out.println(b); b = file.delete(); //刪除文件,不走回收站 file = new File("ai"+File.separator+"xdaq"); b = file.mkdirs(); //創建多級目錄 System.out.println(b); b = file.delete(); //刪除文件夾要註意,文件夾裡面必須保證文件夾裡面沒有東西。 System.out.println(b); file = new File("e:"); long space = file.getFreeSpace(); //獲取剩餘空間大小 System.out.println(space);View Code
##################################獲取文件裡面的文件名稱列表和文件對象
File dir = new File("e:"); String[] names = dir.list(); //獲取文件名稱 if(names == null) return ; for(String i:names){ System.out.println(i); } ### File dir = new File("e:"); File[] names = dir.listFiles(); //獲取文件對象 if(names == null) return ; for(File i:names){ System.out.println(i); }
#####################文件過濾器
用於文件文件過濾,如果是學習這個,需要分析一下下麵的代碼,這樣才能更好的使用
重點:新建自己的過濾器類,繼承FileFilter,實現accept方法,方法放回的為真就是不過濾的。
public class MyFileFilter implements java.io.FileFilter //以docx結尾 { public boolean accept(File pathname) { return pathname.getName().endsWith("docx"); } }MyFileFilter.java
public class FileFilterByEnding implements FileFilter //在創建對象的時候確認以什麼結尾。 { private String suffix; public FileFilterByEnding(String suffix) { super(); this.suffix = suffix; } @Override public boolean accept(File pathname) { return pathname.getName().endsWith(suffix); } }FileFilterByEnding.java
public class FilterByContains implements FilenameFilter //在創建對象的時候確認包含什麼字元 { private String content; public FilterByContains(String content) { super(); this.content = content; } @Override public boolean accept(File dir, String name) { return name.contains(content); } }FilterByContains.java
public class FilterBySuffix implements FilenameFilter //還是在創建對象的時候,確定以什麼結尾 { private String ending; public FilterBySuffix(String ending) { super(); this.ending = ending; } @Override public boolean accept(File dir, String name) { //dir 代表被過濾的目錄,遍歷過程中文件或者文件夾的名字 return name.endsWith(ending); } }FilterBySuffix.java
File dir = new File("e:"); //獲取文件夾裡面的文件,返迴文件數組形式 FilenameFilter filter = new FilterBySuffix("副"); filter = new FilterByContains("a"); String[] names = dir.list(filter); //這裡有個調用 for(String i:names){ System.out.println(i); }主函數調用
####################獲取全部文件內容
public class GetAllFile { public static void main(String[] args) { File f = new File("F:"+File.separator+"E-drive-78234"+File.separator+"study"); getAllFile(f); } public static void getAllFile(File file){ File[] files = file.listFiles(); //獲取文件數組 for(File f:files){ if(f.isDirectory()){ //如果是文件夾,則繼續獲取文件夾裡面的數組 getAllFile(f); } else{ System.out.println(f); } } } }
##########刪除目錄
public class ShanWenJianJia { public static void main(String[] args) { File file = new File("f:"+File.separator+"eclipse_javaCode"+File.separator+ "day21"+File.separator+"day19"); System.out.println(file); ShanChu(file); } public static void ShanChu(File f){ File[] fs = f.listFiles(); if(fs==null){ return; } for(File file:fs){ if(file.isDirectory()){ ShanChu(file); } else{ System.out.println(file+":"+file.delete()); } } System.out.println(f+":"+f.delete()); } }