1. 程式人生 > >Java中的File類及其常用方法

Java中的File類及其常用方法

    File類是java.io包下代表與平臺無關的檔案和目錄,也就是說,如果希望在程式中操作檔案和目錄,都可以通過File類來完成。值得指出的是,不管是檔案還是目錄都是使用File來操作的,File能新建、刪除、重新命名檔案和目錄,File不能訪問檔案內容本身。如果需要訪問檔案內容本身,則需要使用輸入/輸出流。

    File類可以使用檔案路徑字串來建立File實力,該檔案路徑字串既可以是絕對路徑,也可以是相對路徑。在預設情況下,系統總是依據使用者的工作路徑來解釋相對路徑,這個路徑由系統屬性"user.dir"指定,通常也就是執行Java虛擬機器時所在的路徑。

    一旦建立File物件後,就可以呼叫File物件的方法來訪問,File類提供了很多方法來操作檔案和目錄,下面列出一些比較常用的方法。

    1.訪問檔名相關的方法

    String getName():返回此File物件所表示的檔名或路徑名(如果是路徑,則返回最後一級子路徑名)。

    String getPath():返回此File物件所對應的路徑名。

    File getAbsoluteFile():返回此File物件的絕對路徑。

    String getAbsolutePath():返回此File物件所對應的絕對路徑名。

    String getParent():返回此File物件所對應目錄(最後一級子目錄)的父目錄名。

    boolean renameTo(File newName):重新命名此File物件所對應的檔案或目錄,如果重新命名成功,則返回true;否則返回false。

    2.檔案檢測相關的方法

    boolean exists():判斷File物件所對應的檔案或目錄是否存在。

    boolean canWrite():判斷File物件所對應的檔案或目錄是否可寫。

    boolean canRead():判斷File物件所對應的檔案和目錄是否可讀。

    boolean isFile():判斷File物件所對應的是否是檔案,而不是目錄。

    boolean isDirectory():判斷File物件所對應的是否是目錄,而不是檔案。

    boolean isAbsolute():判斷File物件所對應的檔案或目錄是否是絕對路徑。該方法消除了不同平臺的差異,可以直接判斷File物件是否是絕對路徑。在UNIX/LINUX/BSD等系統上,如果路徑名開頭是一條斜線(/),則表明該File物件對應一個絕對路徑;在Windows等系統上,如果路徑名開頭是碟符,則說明它是一個絕對路徑。

    3.獲取常規檔案資訊

    long lastModified():返回檔案的最後修改時間。

    long length():返回檔案內容的長度。

    4.檔案操作相關的方法

    boolean createNewFile():當此File物件所對應的檔案不存在時,該方法將新建一個該File物件所指定的新檔案,如果建立成功則返回true;否則返回false。

    boolean delete():刪除File物件所對應的檔案或路徑。

    static File createTempFile(String prefix,String suffix):在預設的臨時檔案目錄中建立一個臨時檔案,使用給定字首、系統生成的隨機數和給定字尾作為檔名。這是一個靜態方法,可以直接通過File類來呼叫。prefix引數必須是3位元組長。建議字首使用一個短的、有意義的字串,比如“hjb”或“mail”。suffix引數可以為null,在這種情況下,將使用預設的字尾“.tmp”。

    static File createTempFile(String prefix,String suffix,File directory):在directory所指定的目錄中建立一個臨時的空檔案,在使用給定字首、系統生成的隨機數和給定字尾作為檔名。這是一個靜態方法,可以直接通過File類來呼叫。

    void deleteOnExit():註冊一個刪除鉤子,指定當Java虛擬機器退出時,刪除File物件所對應的檔案和目錄。

    5.目錄操作相關的方法

    boolean mkdir():試圖建立一個File物件所對應的目錄,如果建立成功,則返回true;否則返回false。呼叫該方法時File物件必須對應一個路徑,而不是一個檔案。     String[] list():列出File物件的所有子檔名和路徑名,返回String陣列。     File[] listFiles():列出File物件的所有子檔案和路勁返回File陣列。     static File[] listRoots():列出系統所有的根路徑,這是一個靜態方法,可以直接通過File類來呼叫。
package io;
import java.io.File;
import java.io.IOException;
public class FileTest {
	public static void main(String[] args) throws IOException {
		//以當前路徑來建立一個File物件
		File file=new File(".");
		//直接獲取檔名,輸出一點
		System.out.println(file.getName());
		//獲取相對路徑的父路徑可能會出錯,下面程式碼輸出null
		System.out.println(file.getParent());
		//獲取絕對路徑
		System.out.println(file.getAbsolutePath());
		//獲取上一級路徑
		System.out.println(file.getAbsoluteFile().getParent());
		//在當前路徑下建立一個臨時檔案
		File temFile=File.createTempFile("aaa",".txt",file);
		//指定JVM退出時刪除該檔案
		temFile.deleteOnExit();
		//以系統當前系統時間作為新檔名來建立新檔案
		File newFile=new File(System.currentTimeMillis()+"");
		System.out.println("newFile物件是否存在:"+newFile.exists());
		//以指定newFile物件來建立一個檔案
		newFile.createNewFile();
		//以newFile物件來建立一個目錄,因為newFile已存在。
		newFile.mkdir();
		//使用list()方法來列出當前路徑下的所有檔案和路徑。
		String[] fileList=file.list();
		System.out.println("====當前路徑下所有檔案和路徑如下====");
		for(String fileName:fileList){
			System.out.println(fileName);
		}
		//listRoots()靜態方法列出所有的磁碟根路徑
		File[] roots=File.listRoots();
		System.out.println("====系統所有根路徑如下====");
		for(File root:roots){
			System.out.println(root);
		}
	}
}

相關推薦

javaFile常用所有方法及其應用

建立: createNewFile()在指定位置建立一個空檔案,成功就返回true,如果已存在就不建立,然後返回false。 mkdir()  在指定位置建立一個單級資料夾。 mkdirs()  在指定位置建立一個多級資料夾。 renameTo(File dest)如果目標檔

JavaFile及其常用方法

    File類是java.io包下代表與平臺無關的檔案和目錄,也就是說,如果希望在程式中操作檔案和目錄,都可以通過File類來完成。值得指出的是,不管是檔案還是目錄都是使用File來操作的,File能新建、刪除、重新命名檔案和目錄,File不能訪問檔案內容本身。如果需要

JavaMath常用方法

order ref oat math dom ack ron 方法 args 8243 [java] view plain copy public class MathDemo { public static void main(

javaVector常用方法

並不是 tps tle dex tar spa 有變 array sets Vector類是實現List接口,所以繼承的方法就不在這裏講了 https://www.cnblogs.com/xiaostudy/p/9503199.html public void add

JavaCalendar常用方法

Calendar 類常用方法的記錄: 獲取時間 // 使用預設時區和語言環境獲得一個日曆 Calendar cal = Calendar.getInstance(); // 賦值時年月日時分秒常用的6個值,注意月份下標從0開始,所以取

javaFile的使用方法

(轉載houfeng30920)http://blog.csdn.net/houfeng30920/article/details/5149685 建構函式 [html] view plain copy  print? public class Fil

JavaDate常用方法

Date類 表示特定的瞬間,精確到毫秒(在java.util.Date包下)構造方法:public Date()表示分配它的時間(精確到毫秒)。public Date(long date):建立一個日期物件,指定毫秒值         (需要將long 時間毫秒值轉換成Dat

javasession物件及其常用方法

在jsp頁面中可以直接使用session物件,也可以通過pageContext.getSession()或request.getSession()方法重新獲取session物件。 session物件可以儲存使用者的登入資訊,實現購物車功能等。 HTTP協議是一種無狀態協議。客戶向伺服器發出請求requ

Java學習筆記--常用及其常用方法介紹

object類 直接輸出一個物件的名稱,其實就是呼叫了該物件的toString()方法。 一般會重寫toString()方法,輸出成員變數的值。 物件名.getClass().getname()會得到類名。 equals()方法預設是比較兩個物件的地址是否相

Java--File 常用方法

File類: IO流可以對檔案的內容進行讀寫操作,在應用程式中還會經常對檔案本身進行一些常規操作,例如建立一個檔案,刪除或者重新命名某個檔案,判斷硬碟上某個檔案是否存在,查詢檔案最後修改時間等。 針

JavaThread常用的一些方法

1.Thread.dumpStack()     該方法打印出當前執行緒棧的一些基本資訊,比如下面的一些資訊     java.lang.Exception: Stack trace     at java.lang.Thread.dumpStack(Thread.java

java File常用方法

建立: createNewFile()在指定位置建立一個空檔案,成功就返回true,如果已存在就不建立,然後返回false。 mkdir()  在指定位置建立一個單級資料夾。 mkdirs()  在指定位置建立一個多級資料夾。 renameTo(File dest)如果目標檔

javaFilegetPath()、getAbsolutePath()、getCanonicalPath()區別?

mil dir block user out div cnblogs test file 簡單看一下描述,例子最重要。 1、getPath():   返回定義時的路徑,(就是你寫什麽路徑,他就返回什麽路徑) 2、getAbsolutePath():   返回絕對路徑,但不會

常用及其常用方法

sqrt 運行 compare float com n) 最大 pac util 1.String /* * String 的常用方法 * 1. String concat(String str) 將指定字符串連接到此字符串的結尾。 * 2. int length()

淺談JAVA“增強”的某個方法的幾個方法

exc 目標 byte 相同 nbsp 優點 method value oca 一、繼承 使用場景:能夠控制這個類的構造的時候,才可以使用繼承。  優點:簡單容易使用, 缺點:耦合性大大的增強,不利於後期的維護,所以對於繼承這種方法,謹慎使用。 代碼實現:二、裝飾者模式 

javascriptArray常用方法

urn 字符 長度 splice ear 位置 調用 each 使用 方法總覽: instanceOf Array.isArray() toString() join() push() pop() shift() unshift() splice() concat() s

Java及其組成所使用的常見修飾符

成員 name fin 常用 tro string prot 默認 abstract Java中,類及其組成所使用的常見修飾符   (1)修飾符的分類:     權限修飾符:private、默認、protected、public     狀態修飾符:static、fin

javaMap集合的常用方法

try con equals img all sem java 常用 strong Map集合和Collection集合的區別 Map集合是有Key和Value的,Collection集合是只有Value。 Collection集合底層也是有Key和Value,只是隱藏起來

javaHashMap集合的常用方法

tps one style 副本 .html map cnblogs inf clone public Object clone() 返回hashMap集合的副本 其余的方法都是實現Map集合的 https://www.cnblogs.com/xiaostudy/

java抽象和抽象方法到底什麽關系?請舉例說明!

init 舉例 web nds ike anti 聲明 use dont 抽象類和抽象方法什麽關系?抽象類中可能有抽象方法,也可能沒有抽象方法。(視頻下載) (全部書籍)那位說,就跟沒說一樣,那抽象類和抽象方法都叫抽象,他們必定有關系,那關系是什麽呢?如果一個類中有抽象方法