【Java】File類
一、概述
* File更應該叫做一個路徑, 檔案路徑或者檔案夾路徑
* 路徑分為絕對路徑和相對路徑
* 絕對路徑是一個固定的路徑,從盤符開始
* 相對路徑相對于某個位置,在eclipse下是指目前項目下,在dos下
* 檢視API指的是目前路徑
* 檔案和目錄路徑名的抽象表示形式
* 字元串中的需要//來表示分隔符,因為一個/為轉義符
二、構造方法
1、File(Stringpathname):根據一個路徑建立得到File對象,絕對/相對路徑
2、File(Stringparent, String child):根據一個目錄(檔案夾)和一個子檔案/目錄得到File對象,父級路徑+子級路徑
3、File(Fileparent, String child):根據一個父File對象和一個子檔案/目錄得到File對象,将父級路徑封裝成一個File對象
三、File類的建立功能
* public boolean createNewFile():檔案如果不存在,則建立并傳回true,如果存在這樣的檔案,就不建立了傳回 false
* public boolean mkdir():建立單個檔案夾傳回true,如果存在這樣的檔案夾,就不建立了傳回false
* public boolean mkdirs():建立多級檔案夾,如果父檔案夾不存在,會幫你建立出來
* 注意事項:
如果你建立檔案或者檔案夾忘了寫盤符路徑,那麼,預設在項目路徑下。
四、File類的重命名和删除功能
1、public boolean renameTo(File dest):把檔案重命名為指定的檔案路徑,
File dest為目标檔案路徑(名字)
* 如果路徑名相同,就是改名。
* 如果路徑名不同,就是改名并剪切。
2、public boolean delete():删除檔案或者檔案夾
* Java中的删除不走資源回收筒。不可撤回。要小心。
* 要删除一個檔案夾,請注意該檔案夾内不能包含檔案或者檔案夾,必須是空的
五、File類的判斷功能
* public boolean isDirectory():判斷是否是目錄(檔案夾)
* public boolean isFile():判斷是否是檔案
* public boolean exists():判斷是否存在
* public booleancanRead():判斷是否可讀
設定是否可讀:setReadable(boolean);
注意:windows系統認為所有的檔案都是可讀的,設定不起作用。在LINUX下,如果設為不可讀則為不可讀
* public boolean canWrite():判斷是否可寫
設定是都可寫:setWriteable(boolean);
注意:windows系統可以設定為不可寫
* publicboolean isHidden():判斷是否隐藏
六、File類的擷取功能
* public String getAbsolutePath():擷取絕對路徑
* public String getPath():擷取路徑,擷取構造方法裡的路徑,跟建立時傳入的路徑有關
* public String getName():擷取檔案或者檔案夾的名稱
* public long length():擷取檔案的長度。位元組數
* public long lastModified():擷取最後一次的修改時間,毫秒值。
注意:可以使用毫秒值建立Date對象,使用SimpleDateFormat日期進行格式化。
[java] view plain copy- Date d = new Date(file1.lastModified()); //檔案的最後修改時間
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
- System.out.println(sdf.format(d));
* public String[] list():擷取指定目錄下的所有檔案或者檔案夾的名稱數組,僅為了擷取檔案名
* public File[] listFiles():擷取指定目錄下的所有檔案或者檔案夾的File數組,擷取檔案對象,File類重寫了toString()方法。
七、練習
判斷E盤目錄下是否有字尾名為.jpg的檔案,如果有,就輸出該檔案名稱
- 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);
- }
- }*/
- }
- }
注意:如果想判斷E盤下檔案夾中jpg檔案,需要用到遞歸思想 ,後期學習。
原文位址
http://www.bieryun.com/3032.html