欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
在Java實(shí)現Dos中的文件操作命令功能
這幾天要對項目進(jìn)行修改,主要是添加對文件操作的功能。如,刪除一條信息后要同時(shí)刪除它所帶的附件。于是在空閑時(shí)間,決定把功能擴大一下,做一套用Java實(shí)現的Dos命令的簡(jiǎn)單版本。Java的IO中,要對文件進(jìn)行操作用的是class File(InputStream之類(lèi)的我把它們視為是對文件內容進(jìn)行操作的class)。所以,我們要用的的操作都是通過(guò)File這個(gè)類(lèi)來(lái)實(shí)現的。下面,我們將實(shí)現所要的功能。
一.    File Class
1.    class File對象描述了所指定路徑下的文件和目錄的信息。通過(guò)File對象,可以查看某個(gè)路徑下的文件和目錄信息,并可操作路徑下的文件和目錄。
2.    class File的應用
2.1    查看(查詢(xún))某個(gè)路徑下的文件信息。
2.1.1    class File的構造函數
class File有兩類(lèi)構造函數,一類(lèi)帶有一個(gè)參數,用于產(chǎn)生一個(gè)描述參數所所指向的路徑下的文件系統的對象;另一類(lèi)帶有兩數,第一個(gè)參數表示路徑,第二個(gè)參數表示子目錄,用來(lái)產(chǎn)生描述第一個(gè)參數所指向的路徑下的某個(gè)子目錄的文件信息,子目錄名稱(chēng)由第二個(gè)參數指定。如:
File path = new File(“c:\\”);產(chǎn)生一個(gè)描述c:\下的文件信息的對象
File path = new File(“c:\\”, “test”);產(chǎn)生一個(gè)描述c:\的test子目錄的文件信息的對象。
2.1.2    list()和list(FilenameFilter filter)函數
1)    list()函數以String數組的形式返回一個(gè)File對象所描述的文件信息。返回的是路徑下的所有文件和目錄的文件名和目錄名。
2)    list(FilenameFilter filter)函數則提供了查詢(xún)功能,通過(guò)它可能查詢(xún)出滿(mǎn)足特定條件的文件名和目錄名。
2.1.3    用FinenameFilter接口進(jìn)行文件或目錄的查詢(xún)
2.1.3.1.    這個(gè)接口只包含一個(gè)函數:boolean accept(File dir, String name),第二個(gè)參數代表一個(gè)文件或目錄的名稱(chēng),第一個(gè)參數代表文件或目錄所在的目錄的名稱(chēng)。當返回true,表示文件滿(mǎn)足查詢(xún)條件,要被放入結果中;否則,表示文件不滿(mǎn)足要求。
2.1.3.2.    工作原理
當調用某個(gè)File對象的list(FilenameFilter filter)函數時(shí), 會(huì )對File對象中的每一個(gè)文件或目錄調用參數filter中的accept()方法。在對一個(gè)文件或目錄調用accept()函數時(shí)把它的名稱(chēng)以及一個(gè)描述它所在的目錄的File對象作為參數傳給accept()函數。
2.1.4    一個(gè)簡(jiǎn)單的實(shí)例
  1. import java.io.File;
  2. import java.io.FilenameFilter;
  3. class DirList{
  4.     public void printFile(String dir, String filter){
  5.         File path = new File(dir);
  6.         String[] fileList;
  7.         if(filter.length()==0){
  8.             System.out.println("\nAll file:");
  9.             fileList = path.list(); //取得所有文件信息
  10.         }
  11.         else{
  12.             System.out.println("\nAll file including " + filter);
  13.             //取得滿(mǎn)足查詢(xún)條件的文件信息
  14.             fileList = path.list(new DirFilter(filter));
  15.         }
  16.         for(int i=0; i<fileList.length; i++)
  17.             System.out.println(fileList[i]);
  18.     }
  19.     public void printFile(String dir){
  20.         printFile(dir, "");
  21.     }
  22. }
  23. class DirFilter implements FilenameFilter{
  24.     String afn; //存放查詢(xún)條件
  25.     DirFilter(String afn) { this.afn = afn; }
  26.     //滿(mǎn)足查詢(xún)條件,返回true
  27.     public boolean accept(File dir, String name){
  28.         return name.indexOf(afn)!=-1;
  29.     }
  30. }
  31. public class TestIO{
  32.     public static void main(String[] args){
  33.         DirList dirList = new DirList();
  34.         //顯示F:\test下的文件信息
  35.         dirList.printFile("F:\\test");
  36.         //顯示F:\test下名稱(chēng)包含“.rar”文件信息
  37.         dirList.printFile("F:\\test"".rar");
  38.         //顯示F:\test下名稱(chēng)包含“r”文件信息
  39. dirList.printFile("F:\\test""r");
  40.     }
  41. }

這個(gè)只是一個(gè)簡(jiǎn)單的例子,只要完善accept()函數,你也可以做出一個(gè)Java版的dir命令來(lái)。
2.2    當然,我們還能通過(guò)File來(lái)文件或目錄進(jìn)行創(chuàng )建、刪除和改名的操作。
  1. import java.io.File;
  2. import java.io.FilenameFilter;
  3. import java.util.Date;
  4. import java.text.SimpleDateFormat;
  5. class DirFilter implements FilenameFilter{
  6.     String afn;
  7.     DirFilter(String afn) { this.afn = afn; }
  8.     public boolean accept(File dir, String name){
  9.         return name.indexOf(afn)!=-1;
  10.     }
  11. }
  12. class OptFile{
  13.     public static String getAbsolutePath(File f){
  14.         return f.getAbsolutePath();
  15.     }
  16.     public static String getPath(File f){
  17.         return f.getParent();
  18.     }
  19.     public static String getName(File f){
  20.         return f.getName();
  21.     }
  22.     public static long getLength(File f){
  23.         return f.length();
  24.     }
  25.     public static String getParent(File f){
  26.         return f.getParent();
  27.     }
  28.     public static String getLastModified(File f, String format){
  29.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  30.         if(format.equals("ymdh"))
  31.             sdf = new SimpleDateFormat("yyyy-MM-dd hh");
  32.         else if(format.equals("ymdhm"))
  33.             sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
  34.         return sdf.format((new Date(f.lastModified())));
  35.     }
  36.     public static String getLastModified(File f){
  37.         return getLastModified(f, "ymd");
  38.     }
  39.     public static boolean canRead(File f){
  40.         return f.canRead();
  41.     }
  42.     public static boolean canWrite(File f){
  43.         return f.canWrite();
  44.     }
  45.     public static boolean isFile(File f){
  46.         return f.isFile();
  47.     }
  48.     public static boolean isDir(File f){
  49.         return f.isDirectory();
  50.     }
  51.     public static boolean rename(File oldName, File newName){
  52.         return oldName.renameTo(newName);
  53.     }
  54.     public static boolean delete(File f){
  55.         return f.delete();
  56.     }
  57.     public static boolean mkdir(File f){
  58.         return f.mkdirs();
  59.     }
  60.     /**
  61.      * 從指定路徑中查詢(xún)文件
  62.      */
  63.     public static File[] findFile(String filePath, String fileName){
  64.         File f = new File(filePath);
  65.         File[] result = f.listFiles(new DirFilter(fileName));
  66.         return result;
  67.     }
  68.     public static void printFileAtt(File f){       
  69.         System.out.println(
  70.             " Absolute path: " + getAbsolutePath(f) +
  71.             "\n Can read: " + canRead(f) +
  72.             "\n Can write: " + canWrite(f) + 
  73.             "\n path: " + getPath(f) +
  74.             "\n name: " + getName(f) +
  75.             "\n parent: " + getParent(f) +
  76.             "\n length: " + getLength(f) +
  77.             "\n lastModified: " + getLastModified(f));
  78.         if(isFile(f))
  79.             System.out.println(" it‘s a file");
  80.         else if(isDir(f))
  81.             System.out.println(" it‘s a directory");
  82.     }
  83. }
  84. public class TestIO{
  85.     public static void main(String[] args){
  86.         File f1 = new File("F:\\nepalon\\thinkinginjava\\test");
  87.         File f2 = new File("F:\\nepalon\\thinkinginjava\\test\\aa ");
  88.         OptFile.printFileAtt(f1);
  89.         OptFile.printFileAtt(f2);
  90.         //當對文件或目錄進(jìn)行改名,且更新到一個(gè)不同的下時(shí),
  91.         //會(huì )先把文件或整個(gè)目錄剪切到新目錄下,再重新命名
  92.         File nf2 = new File("F:\\nepalon\\thinkinginjava\\使用log4j.files");
  93.         if(OptFile.rename(f2, nf2)){
  94.             System.out.println("after rename f2:");
  95.             OptFile.printFileAtt(nf2);
  96.         }
  97.         else
  98.             System.out.println("rename nf2 failly");
  99.       //進(jìn)行刪除操作時(shí),只能刪除文件;如果刪除的是目錄,會(huì )返回false
  100.         File df = new File("F:\\nepalon\\thinkinginjava\\test\\1001.doc");
  101.         if(OptFile.delete(df))
  102.             System.out.println("Delete df successfully");
  103.         else
  104.             System.out.println("Delete df failly");
  105.         System.out.println("Find file with name \"1001\"");
  106.         OptFile.findFile("F:\\nepalon\\thinkinginjava\\test""1001");
  107.         File mf = new File("F:\\nepalon\\thinkinginjava\\test\\1001");
  108.         if(OptFile.mkdir(mf))
  109.             System.out.println("create directory mf successfully");
  110.         else
  111.             System.out.println("create directory mf failly");
  112.     }
  113. }
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JAVA的I/O介紹
在java中如何遍歷某個(gè)路徑下的所有文件夾和文件
javaIO讀寫(xiě)整理完整版及示例(各種方式代碼集合)
java常用類(lèi)解析五:IO系統File類(lèi)及文件搜索工具類(lèi)
Java中g(shù)etResourceAsStream的用法
hadoop hdfs 圖片服務(wù)器應用部署
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久