当前位置:编程学习 > JAVA >>

在Java实现Dos中的文件操作命令功能

这几天要对项目进行修改,主要是添加对文件操作的功能。如,删除一条信息后要同时删除它所带的附件。于是在空闲时间,决定把功能扩大一下,做一套用Java实现的Dos命令的简单版本。Java的IO中,要对文件进行操作用的是class File(InputStream之类的我把它们视为是对文件内容进行操作的class)。所以,我们要用的的操作都是通过File这个类来实现的。下面,我们将实现所要的功能。
一.    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    一个简单的实例
  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(" All file:");
  9.             fileList = path.list(); //取得所有文件信息
  10.         }
  11.         else{
  12.             System.out.println(" All file including " + filter);
  13.             //取得满足查询条件的文件信息
  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; //存放查询条件
  25.     DirFilter(String afn) { this.afn = afn; }
  26.     //满足查询条件,返回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: est下的文件信息
  35.         dirLis
补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,