File类

来源:互联网 发布:淘宝网络科技有限公司 编辑:程序博客网 时间:2024/06/15 02:42

       一个计算机语言需要拥有良好的IO功能,以便让未处理的数据流入程序,了让已处理的数据流出; 在学习IO流之前必须先掌握硬盘上的路径表现形式;而对于这种java提供的是这样一个类:File类

 File

 File类:件和目录路径名的抽象表现形式.
       构造方式:(就不举例打代码了,下去练练)
              public  File(String pathname)  ---->将硬盘上的某一个路径名封装成File对象
              public  File(String  parent,String  child)  ------>通过父目录名,后面的是文件或者文件夹的子目录名
              public File(File  parent,String  child)  ----> 通过父的File 对象,和一个文件或者文件夹的子目录名
   File类有哪些跟创建相关的方法
             public boolean mkdir():创建一个文件夹,如果当前已经了有了这个文件夹,就不需要创建了
        public boolean createNewFile():创建文件,如果已经有了这个文件,那么不需要在创建了
             public boolean mkdirs():创建文件夹,当父目录不存在的时候直接创建
    删除目录或者文件使用的方式则是:
                    public  Boolean  delete( ) ------>删除此抽象路径名表示的文件或目录;如果此路径名表示一个目录, 
                                                                                                    则该目录必须 为空才可以删除.       
              
           如果在表示路径名的抽象表现形式的时候:如果没有盘符,默认是当前java项目下创建.
  对于删除功能举例如下:
 public class FileDemo {
public static void main(String[] args) throws IOException {
//表示E盘下demo文件夹中的a.txt文件
File file = new File("a.txt") ;
System.out.println("createNewFile:"+file.createNewFile());

//多创建几个目录
File file2 = new File("aaa\\bbb\\ccc\\ddd") ;
System.out.println("mkdirs:"+file2.mkdirs());

//删除a.txt文件
System.out.println("delete:"+file.delete());

//要删除当前项目下的aaa这个目录
System.out.println("delete:"+file2.delete());
File file3 = new File("aaa\\bbb\\ccc") ;
System.out.println("delete:"+file3.delete());
File file4 = new File("aaa\\bbb") ;
System.out.println(file4.delete());
File file5 = new File("aaa") ;
System.out.println(file5.delete());
}
}
  
              
File类中的一个重命名的方法:
   public  Boolean renameTo(File  dest)  ---->重命名此抽象路径名表示的文件
                         
              如果两个文件的路径的表现的形式一样,那么只是重命名
              如果两个文件的路径的表现的形式不一样,那么不仅是重命名,并且还有剪切的作用

File类中的判断功能:
            public  Boolean  exists(  )  ----->表示当前抽象路径名的文件或者目录是否存在
            public  Boolean  isDirectory( )  ----->判断抽象路径名是否是文件夹
            public  Boolean  isFile( )  -------->判断此抽象路径名是否是一个标准文件
            public  Boolean   isHidden( )  ----->测试抽象路径名直径的文件是否是一个隐藏文件
            public  Boolean   isAbsolute(  ) ------->测试此抽象路径名是否为绝对路径名
            public   Boolean  canRead(  )  ------->判断当前文件是否是可读文件
            public   Boolean  canWrite(  ) ------>判断当前文件是否是可写文件

File类的获取功能:
            public String getPath( ) ---->获取此文件的抽象的相对路径字符串表现形式
            public  String   getAbsolutPath(  ) ------->绝对路径
            public  String  getName(  )  ---->返回有此抽象路径名表示的文件或目录的名称
             public   long  length(  ) ------>  表示的文件的长度
             public   long   lastModified(  )  ------>返回此抽象路径名表示的文件最后一次被修改的时间

File类获取功能(高级):
           public  String [  ]  list( )  ---->返回的是一个字符串数组,获取盘符下的所有的文件以及文件夹
            public  File[  ]  listFiles( )  ---->返回的是一个File数组,表示此抽象路径名表示的目录中的文件

     例如:

  public class FileDemo {
              public static void main(String[] args) {
//获取e盘下的所有的文件以及文件夹
 File file =new File("e:\\");
 String [] strArray =file.list();
 
 //增强for遍历
 for(String s :strArray){
 System.out.println(s);  //表示当前文件或者目录的名称
 }
 System.out.println("----------");
 
 File [] fileArray =file.listFiles();
 //增强for
 for(File  file2 : fileArray){
 System.out.println(file2.getName());
 }
    }

}


Fille类提供了一种文件或目录名称过滤器

    public  String [  ]  list( FilenameFilter filter)

     public  File[  ]  listFiles(FileFilter  filter)


判断E盘目录下是否有后缀名.jpg的文件,如果有就输出此文件名称

   public class  FileDemo2 {

        public  static  void  main(String [ ]  args){

            //将e盘封装成一个File 对象

       File  srcFile =new File("e:\\");

         //直接匿名内部类的方式

           String [ ]  strArray = srcFile.list(new FilenameFilter( )){

                            

      @Override
public boolean accept(File dir, String name) {
//测试指定文件是否应该包含在某一文件列表中
// System.out.println(dir+"----"+name);
// return  true;

             //返回值是否为true
    //后缀名为.jpg的文件
/*File  file =new File(dir,name);
         //判断是否是文件
Boolean flag1 =file.isFile();

//还需要判断获取到的文件是否是以 .jpg 结尾的文件
Boolean  flag2= name.endsWith(".jpg");
return flag1 && flag2;
*/
return new File(dir,name).isFile() &&  name.endsWith(".jpg");//一次性获取出来的
}
   });
   
   //遍历当前String[]  数组
   for(String s : strArray){
    System.out.println(s);
   }
      }
}


总结

   File类 所提供的功能都是有用的,多进行比较的理解的记忆
原创粉丝点击