<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 禮物 閱讀(309) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 美女被cao网站免费看在线看| 97无码人妻福利免费公开在线视频 | 亚洲一区二区三区高清视频| 一个人看的www在线观看免费| 亚洲成av人无码亚洲成av人| 亚洲国产精品一区二区三区久久| 暖暖在线视频免费视频| 亚洲熟妇自偷自拍另欧美| 亚洲精品你懂的在线观看| 91嫩草国产在线观看免费| 一级毛片免费不卡直观看| 亚洲大香伊人蕉在人依线| 在线观看国产情趣免费视频| 精品一卡2卡三卡4卡免费视频| 国产成人亚洲综合一区| 国产成人亚洲综合无码精品| 国产精品高清全国免费观看| 日韩精品无码免费一区二区三区| 粉色视频免费入口| 亚洲va精品中文字幕| 国产AV无码专区亚洲AV男同| 国产精品无码素人福利免费| 亚洲免费二区三区| 国产又黄又爽胸又大免费视频| 亚洲精品久久久久无码AV片软件| 国产亚洲人成网站观看| 免费大片在线观看网站| 青青草a免费线观a| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 午夜视频免费成人| 日韩精品无码免费一区二区三区| 九九免费观看全部免费视频| 亚洲日韩中文字幕一区| 亚洲男女一区二区三区| 亚洲另类精品xxxx人妖| 国产亚洲精品拍拍拍拍拍| 韩国日本好看电影免费看| 18国产精品白浆在线观看免费 | 四虎影视免费永久在线观看| 青青草a免费线观a| 免费观看无遮挡www的视频|