天天看點

IO流——File類

File類

用來将檔案或檔案夾封裝成對象

友善對檔案與檔案夾的屬性資訊進行操作

File對象可以作為參數傳遞給流的構造函數

import java.io.*;
public class FileDemo 
{

	public static void main(String[] args) throws IOException
	{
		consMehtod();
	}
	public static void consMehtod()
	{
		//将a.txt封裝成file對象。可以将已有的和未出現的檔案或檔案夾封裝成對象
		File f1 = new File("a.txt");
		
		File f2 = new File("c:\\abc","b.txt");
		
		File dFile = new File("c:\\abc");
		File f3 = new File(dFile,"c.txt");
		
		sop("f1:"+f1);
		sop("f2:"+f2);
		sop("f3:"+f3);
		
		File f4 = new File("c:"+File.separator+"abc"+File.separator+"zzz"+File.separator+"a.txt");
		//關鍵字separator:與系統有關的預設名稱分隔符。實作跨平台性
		sop("f4:"+f4);
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}
           
import java.io.File;

/*
4。擷取資訊
	getName():
	getPath():
	getParent():
	
	getAbsolutePath():
	long lastModified():
	long length():
 */
public class TransStreamDemo {

	public static void main(String[] args)
	{
		
	}
	public static void method_4()
	{
		File f = new File("file.txt");
		
		sop("path:"+f.getPath());
		sop("abspath:"+f.getAbsolutePath());
		sop("parent:"+f.getParent());//該方法傳回的是絕對路徑中的父目錄,
		//如果擷取的是相對路徑,傳回null。如果相對路徑中有上一層目錄,那麼該目錄就是傳回結果。
	}
	public static void method_5()
	{
		File f1 = new File("c:\\Test.java");
		File f2 = new File("d:\\hello.java");
		
		sop("rename:"+f1.renameTo(f2));
	}
	
}
           

檔案清單:

  String[] list() 

          傳回一個字元串數組,這些字元串指定此抽象路徑名表示的目錄中的檔案和目錄。 

 String[] list(FilenameFilter filter) 

          傳回一個字元串數組,這些字元串指定此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。 

 File[] listFiles() 

          傳回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的檔案。 

 File[] listFiles(FileFilter filter) 

          傳回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。 

 File[] listFiles(FilenameFilter filter) 

          傳回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。 

static File[] listRoots() 

          列出可用的檔案系統根 

import java.io.File;
import java.io.FilenameFilter;


public class FileDemo {

	public static void main(String[] args)
	{
		//listRootsDemo();
		//listDmeo();
		
		File dir = new File("c:\\");
		File[] files = dir.listFiles();
		
		for(File f: files)
		{
			sop(f.getName()+"::"+f.length());
		}
	}
	public static void listDmeo()
	{
		File f = new File("c:\\");
		String[] names = f.list();//調用list方法的file對象必須是一個目錄,
								//該目錄還必須存在
		
		for(String name : names )
		{
			sop(name);
		}
	}
	
	public static void listRootsDemo()
	{
		File[] files = File.listRoots();
		
		for(File f : files)
		{
			sop(f);
		}
	}
	public static void listDemo_2()
	{
		File dir = new File("d:\\");
		String[] arr = dir.list(new FilenameFilter() 
		{
			
			@Override
			public boolean accept(File dir, String name) {
				// TODO Auto-generated method stub
				/*sop("dir:"+dir+"....name::"+name);
				return true;
				*/
				return name.endsWith(".bmp");
			}
		});
		for(String name : arr)
		{
			sop(name);
		}
	}
	public static void sop(Object obj)
	{
		System.out.print(obj);
	}
	
}