愛悠閑 > Java_io_File類

Java_io_File類

分類: Java  |  標簽: File,FilenameFilter,accept,遍歷  |  作者: zimo2013 相關  |  發布日期 : 2014-11-26  |  熱度 : 403°

 

IO流簡介>> 

鏈接地址1.File類常用方法

   static String File.seprator 靜態成員獲取分隔符,如windows  \
   String toString()  返回此抽象路徑名的路徑名字符串

   boolean createNewFile()  當且僅當不存在指定名稱的文件時,創建一個新的空文件。如果存在,則false
   boolean mkdir()  創建指定的一級目錄。 
   boolean mkdirs() 創建目錄,包括所有必需但不存在的父目錄(多級目錄)。 

   boolean isAbsolute()  測試是否為絕對路徑名。 
   boolean isDirectory()當且僅當此存在,且是目錄才返回true,故先進行exists判斷是否存在 
   booleanisFile()  當且僅當此存在,且是文件才返回true,故先進行exists判斷是否存在 
   boolean isHidden() 測試是否是一個隱藏文件。UNIX上,如果文件名以句點字符 ('.') 開頭,則認為該文件被隱藏。Windows系統上,如果在文件系統中文件被標記為隱藏,則認為該文件被隱藏。 

   public String getParent()如果此路徑名沒有上層父目錄,則返回 null。 
   long lastModified() 返回文件最后一次被修改的時間。
   longlength() 返回文件的大小。 
   boolean renameTo(File dest) 重新命名此表示的文件
   staticFile[]listRoots() 靜態方法列出可用的文件系統根,即盤符

   public booleancanExecute() 當且僅當抽象路徑名存在且允許應用程序執行文件時返回 true
   boolean canRead() 測試是否可讀
   boolean canWrite() 測試是否可修改
   boolean exists() 測試此文件或目錄是否存在。

   boolean delete() 刪除文件或目錄。 
   void deleteOnExit() 在虛擬機終止時,請求刪除文件或目錄。沒有返回值

2.代碼實現

/*
文件名過濾
是通過覆蓋accept方法,返回布爾值來確定該文件是否符合要求
Strawberry2013-5-5
*/
import java.io.*;
class FileDemo
{
	public static void main(String[] args) throws IOException
	{
		File dir = new File("D:\\Videos\\Movies");

		String[] files = dir.list(new MyFilenameFilter());//String[] list(FilenameFilter filter) 
												//自定義一個過濾器,通過覆蓋過濾器的accept方法來達到過濾的目的
		for(String file: files)					//過濾是自動調用accept發來來達到目的的。
		{
			System.out.println(file);
		}
	}

}

class MyFilenameFilter implements FilenameFilter		//繼承文件名過濾器FilenameFilter
{
	public boolean accept(File dir, String name)		//dir為被找到文件所在的目錄,name為文件的名稱
	{													//當且僅當該名稱應該包含在文件列表中時返回 true
		return name.endsWith(".rmvb");
	}
}
/*
遍歷文件目錄,將符合要求的文件名存儲至本地文件

Strawberry2013-5-5
*/
import java.io.*;
import java.util.*;

class FileDemo
{
	public static void main(String[] args) throws IOException
	{
		File dir = new File("E:\\Android-Document\\Video");
		ArrayList<File> arr = new ArrayList<File>();	//定義一個集合,存放符合要求的File文件
		BufferedWriter bufw = new BufferedWriter(new FileWriter("info.ini"));

		//long d1 = System.currentTimeMillis();
		method(dir,arr);
		//long d2 = System.currentTimeMillis();
		//System.out.println("111:::"+ (d2-d1));	//計算遍歷實際
		for(File file: arr)
		{
			bufw.write(file.toString());	//	將集合中存儲的信息,存儲到文件中
			bufw.newLine();
			bufw.flush();
		}
		bufw.close();
		//long d3 = System.currentTimeMillis();
		//System.out.println("111:::"+ (d3-d2));	//計算存儲時間
	}
	public static void method(File dir, ArrayList<File> arr)//遞歸調用函數
	{
		File[] files = dir.listFiles();										
		for(File file: files)				
		{
			if (file.isDirectory())
			{
				method(file, arr);
			}
			if(file.toString().endsWith(".avi"))	//以符合要求
				arr.add(file);						//向集合中添加
		}
		return;
	}
}


快乐彩中奖说明