<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    1.         class File對象描述了所指定路徑下的文件和目錄的信息。通過File對象,可以查看某個路徑下的文件和目錄信息,并可操作路徑下的文件和目錄。
    2.         class File的應用
    2.1          查看(查詢)某個路徑下的文件信息。
    2.1.1          class File的構造函數
    class File有兩類構造函數,一類帶有一個參數,用于產生一個描述參數所所指向的路徑下的文件系統的對象;另一類帶有兩數,第一個參數表示路徑,第二個參數 表示子目錄,用來產生描述第一個參數所指向的路徑下的某個子目錄的文件信息,子目錄名稱由第二個參數指定。如:
    File path = new File(“c:""”);產生一個描述c:"下的文件信息的對象
    File path = new File(“c:""”, “test”);產生一個描述c:"的test子目錄的文件信息的對象。
    2.1.2          list()和list(FilenameFilter filter)函數
    1)        list()函數以String數組的形式返回一個File對象所描述的文件信息。返回的是路徑下的所有文件和目錄的文件名和目錄名。
    2)        list(FilenameFilter filter)函數則提供了查詢功能,通過它可能查詢出滿足特定條件的文件名和目錄名。
    2.1.3          用FinenameFilter接口進行文件或目錄的查詢
    2.1.3.1.   這個接口只包含一個函數:boolean accept(File dir, String name),第二個參數代表一個文件或目錄的名稱,第一個參數代表文件或目錄所在的目錄的名稱。當返回true,表示文件滿足查詢條件,要被放入結果中; 否則,表示文件不滿足要求。
    2.1.3.2.  工作原理
    當調用某個File對象的list(FilenameFilter filter)函數時, 會對File對象中的每一個文件或目錄調用參數filter中的accept()方法。在對一個文件或目錄調用accept()函數時把它的名稱以及一個 描述它所在的目錄的File對象作為參數傳給accept()函數。
    2.1.4          一個簡單的實例
    import java.io.File;
    import java.io.FilenameFilter;
    class DirList{
        public void printFile(String dir, String filter){
            File path = new File(dir);
            String[] fileList;
            if(filter.length()==0){
                System.out.println(""nAll file:");
                fileList = path.list(); //取得所有文件信息
           }
            else{
    System.out.println(""nAll file including " + filter);
    //取得滿足查詢條件的文件信息
                fileList = path.list(new DirFilter(filter));
            }
            for(int i=0; i<fileList.length; i++)
                System.out.println(fileList[i]);
        }
        public void printFile(String dir){
            printFile(dir, "");
        }
    }
    class DirFilter implements FilenameFilter{
        String afn; //存放查詢條件
    DirFilter(String afn) { this.afn = afn; }
    //滿足查詢條件,返回true
        public boolean accept(File dir, String name){
            return name.indexOf(afn)!=-1;
        }
    }
    public class TestIO{
        public static void main(String[] args){
            DirList dirList = new DirList();
                  //顯示F:"test下的文件信息
            dirList.printFile("F:""test");
                  //顯示F:"test下名稱包含“.rar”文件信息
            dirList.printFile("F:""test", ".rar");
            //顯示F:"test下名稱包含“r”文件信息
    dirList.printFile("F:""test", "r");
        }
    }
    這個只是一個簡單的例子,只要完善accept()函數,你也可以做出一個Java版的dir命令來。
    2.2          當然,我們還能通過File來文件或目錄進行創建、刪除和改名的操作。
    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.Date;
    import java.text.SimpleDateFormat;
    class DirFilter implements FilenameFilter{
        String afn;
        DirFilter(String afn) { this.afn = afn; }
        public boolean accept(File dir, String name){
            return name.indexOf(afn)!=-1;
        }
    }
    class OptFile{
        public static String getAbsolutePath(File f){
            return f.getAbsolutePath();
        }
        public static String getPath(File f){
            return f.getParent();
        }
        public static String getName(File f){
            return f.getName();
        }
        public static long getLength(File f){
            return f.length();
        }
        public static String getParent(File f){
           return f.getParent();
        }
        public static String getLastModified(File f, String format){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if(format.equals("ymdh"))
                sdf = new SimpleDateFormat("yyyy-MM-dd hh");
            else if(format.equals("ymdhm"))
                sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
            return sdf.format((new Date(f.lastModified())));
        }
        public static String getLastModified(File f){
            return getLastModified(f, "ymd");
        }
        public static boolean canRead(File f){
            return f.canRead();
        }
        public static boolean canWrite(File f){
            return f.canWrite();
        }
        public static boolean isFile(File f){
            return f.isFile();
        }
        public static boolean isDir(File f){
            return f.isDirectory();
        }
        public static boolean rename(File oldName, File newName){
            return oldName.renameTo(newName);
        }
        public static boolean delete(File f){
            return f.delete();
        }
        public static boolean mkdir(File f){
            return f.mkdirs();
        }
        /**
         * 從指定路徑中查詢文件
         */
        public static File[] findFile(String filePath, String fileName){
            File f = new File(filePath);
            File[] result = f.listFiles(new DirFilter(fileName));
            return result;
        }
        public static void printFileAtt(File f){       
            System.out.println(
                " Absolute path: " + getAbsolutePath(f) +
                ""n Can read: " + canRead(f) +
                ""n Can write: " + canWrite(f) + 
                ""n path: " + getPath(f) +
                ""n name: " + getName(f) +
                ""n parent: " + getParent(f) +
                ""n length: " + getLength(f) +
                ""n lastModified: " + getLastModified(f));
            if(isFile(f))
                System.out.println(" it's a file");
            else if(isDir(f))
                System.out.println(" it's a directory");
        }
    }
    public class TestIO{
        public static void main(String[] args){
            File f1 = new File("F:""nepalon""thinkinginjava""test");
            File f2 = new File("F:""nepalon""thinkinginjava""test""aa ");
            OptFile.printFileAtt(f1);
            OptFile.printFileAtt(f2);
            //當對文件或目錄進行改名,且更新到一個不同的下時,
            //會先把文件或整個目錄剪切到新目錄下,再重新命名
            File nf2 = new File("F:""nepalon""thinkinginjava""使用log4j.files");
            if(OptFile.rename(f2, nf2)){
                System.out.println("after rename f2:");
                OptFile.printFileAtt(nf2);
            }
            else
                System.out.println("rename nf2 failly");
          //進行刪除操作時,只能刪除文件;如果刪除的是目錄,會返回false
            File df = new File("F:""nepalon""thinkinginjava""test""1001.doc");
            if(OptFile.delete(df))
                System.out.println("Delete df successfully");
            else
                System.out.println("Delete df failly");
            System.out.println("Find file with name ""1001""");
            OptFile.findFile("F:""nepalon""thinkinginjava""test", "1001");
            File mf = new File("F:""nepalon""thinkinginjava""test""1001");
            if(OptFile.mkdir(mf))
                System.out.println("create directory mf successfully");
            else
                System.out.println("create directory mf failly");
        }
    }
    posted on 2008-02-13 23:08 禮物 閱讀(310) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲精品中文字幕麻豆| 久久精品九九亚洲精品| 精品免费视在线观看| 亚洲日本香蕉视频| 亚洲av高清在线观看一区二区| 国产精品免费视频观看拍拍| 亚洲大香人伊一本线| 一本久久综合亚洲鲁鲁五月天 | 一级毛片正片免费视频手机看| 亚洲狠狠久久综合一区77777| 午夜私人影院免费体验区| a级毛片免费观看视频| 亚洲精品欧美综合四区| 亚洲AV无码乱码在线观看富二代 | 免费国产高清视频| 国产成人精品免费视| 男女拍拍拍免费视频网站| 亚洲六月丁香婷婷综合| 亚洲女久久久噜噜噜熟女| 免费视频中文字幕| 免费A级毛片无码A∨| 免费一级毛suv好看的国产网站| 亚洲无圣光一区二区| 亚洲精品无码专区在线在线播放| 日本一道本高清免费| 亚洲免费二区三区| 一个人免费视频在线观看www| 美女被免费视频网站a| 亚洲六月丁香婷婷综合| 久久精品国产精品亚洲毛片| 中文字幕亚洲一区二区三区| 日韩精品视频免费在线观看| 五月婷婷在线免费观看| 久久国产免费一区| 成年免费a级毛片免费看无码| 国产成人 亚洲欧洲| 亚洲成在人线在线播放无码 | 亚洲大片免费观看| 亚洲免费精彩视频在线观看| 国产精品亚洲视频| 亚洲国产成人久久精品99|