首页(162) xml(5) spring(1) 生活(8) java(70) 代码(10) 英语(4) 数据库(7) c#(14) 成长(10) 软件工程(27)  写新日志
 
 

玻璃杯中的花生壳

  真爱的事业和真正的爱情一生只有一次,都值得我们温柔地相待,因为那种感觉是永远都无法复制的, 这世界真正属于你的东西其实并不多,你不好好珍惜,它便会离你而去,包括机遇,包括爱情,包括生命。
   不要找任何理由,  当幸福在你身边的时候就抓住它,你就一定会很幸福! 
   

时 间 记 忆
«September 2025»
123456
78910111213
14151617181920
21222324252627
282930

最 新 评 论
回复:xml的Jdom解析过程详解
回复:突然想到的几句话!
 Boyle came out of n
回复:xml的Jdom解析过程详解
回复:配置Spring数据源
回复:使用SAX解析XML
回复:java中写文件操作时FileOu
回复:关联和依赖关系的区分
回复:HttpSessionListen
回复:Spring AOP四种创建通知(

最 新 日 志
Java开发者的十大戒律
配置Spring数据源
java多线程设计模式
java中switch的使用
性格,编码,测试
突然想到的几句话!
理解Spring AOP中的关键概念
Spring AOP四种创建通知(拦截器
xml的四种解析方法 比较 sax,do
xml的Jdom解析过程详解

最 新 留 言
签写新留言

我渴望知识
很好的东东
帖子不错,道声谢
想拜师学艺
我的呼喊

搜 索


用 户 登 录
用户名称:
登陆密码:
密码保存:

友 情 连 接

模板设计:部落窝模板世界

blog名称:玻璃杯中的花生壳
日志总数:162
评论数量:249
留言数量:1
访问次数:828425
建立时间:2004年11月4日
 
 
 
[java]彻底明白JAVA的IO系统-1(认识File)
[ 2006/8/22 11:54:54 | By: 玻璃杯中的花生壳 ]
 
一.File Class 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");     } }
 

阅读全文(1889) | 回复(0) | 编辑 | 精华
 

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
 
部落窝Blog模板世界部落窝Blog模板世界
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144788163 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号