zoukankan      html  css  js  c++  java
  • File基本操作

    File
    (1)File是文件和目录路径名的抽象表示。IO流操作中大部分都是对文件的操作,因此Java就提供了File类供我们来操作文件。


    (2)构造方法

    根据一个路径得到一个File对象
             A:File file = new File("e:\demo\a.txt");   

    根据一个目录和一个子文件/目录得到File对象
            B:File file = new File("e:\demo","a.txt");  

    根据一个父File对象和一个子文件/目录得到一个File对象
           C:File file = new File("e:\demo");
           File file2 = new File(file,"a.txt");

    public static void main(String[] args) {
    		File file = new File("E:\demo\a.txt");
    		
    		File file2 = new File("E:\demo", "a.txt");
    		
    		File file3 = new File("e:\demo");
    		File file4 = new File(file3, "a.txt");
    	}
    

      


    (3)File类的功能
        A:创建功能

         public boolean createNewFile()   创建文件  如果存在就不创建了

         public boolean mkdir()   创建文件夹  如果存在这样的文件夹就不创建了

         public boolean mkdirs()   创建文件夹  如果父文件夹不存在,会帮您创建出来

        

     1 public class FileDemo1 {
     2     public static void main(String[] args) throws IOException {
     3         File file = new File("e:\demo");
     4         System.out.println("mkdir:" + file.mkdir());
     5         
     6         File file2 = new File("e:\demo\a.txt");
     7         System.out.println("ceateNewFile:" + file2.createNewFile());
     8         
     9         File file3 = new File("e:\aaa\bbb\ccc\dddd");
    10         System.out.println("mkdir:" + file3.mkdirs());
    11     }
    12 
    13 }

         
    B:删除功能

        public boolean delete()

        注意:如果创建文件或文件夹没有指定盘符路径,默认在项目路径下

                  Java中的删除不走回收站的哦

                  要删除一个文件夹,这是这个文件夹下面不能包含文件或文件夹

         

     1 public class FileDemo2 {
     2     public static void main(String[] args) throws IOException {
     3         File file = new File("a.txt");
     4         System.out.println("createNewFile:" + file.createNewFile());
     5         
     6         File file2 = new File("aaa\bbb\ccc");
     7         System.out.println("mkdirs:" + file2.mkdirs());
     8         
     9         System.out.println("delete:" + file.delete());
    10         //删除ccc文件夹
    11         System.out.println("delete:" + file2.delete());
    12         
    13         //删除aaa文件夹
    14         File file3 = new File("aaa\bbb");
    15         File file4 = new File("aaa");
    16         System.out.println("delete:" + file3.delete());
    17         System.out.println("delete:" + file4.delete());
    18         
    19     }
    20     
    21 
    22 }


    C:重命名功能

        pulbic boolean renameTo(File desc)

     1 public class FileDemo3 {
     2     public static void main(String[] args) {
     3         //先创建一个文件对象
     4         File file = new File("aaa.jpg");
     5         
     6         //修改成“bbb.jpg”
     7         File newfile = new File("bbb.jpg");
     8         
     9         System.out.println("renameTo:" + file.renameTo(newfile));
    10     }
    11 
    12 }


    D:判断功能

      public boolean isDirectory():判断是否是目录

      public boolean isFile():判断是否是文件

      public boolean exists():判断是否存在

      public boolean canRead():判断是否可读

      public boolean canWrite():判断是否可写

      public boolean isHidden():判断是否隐藏

     1 public class FileDemo4 {
     2     
     3     public static void main(String[] args) {
     4         File file = new File("a.txt");
     5         
     6         System.out.println("isDirectory:" + file.isDirectory());
     7         System.out.println("idFile:" + file.isFile());
     8         System.out.println("exists:" + file.exists());
     9         System.out.println("canRead:" + file.canRead());
    10         System.out.println("canWrite:" + file.canWrite());
    11         System.out.println("isHidden:" + file.isHidden());
    12         
    13         
    14     }
    15 }


    E:获取功能

    * public String getAbsolutePath() :获取绝对路径
    * public String getPath() :获取相对路径
    * public String getName() :获取名称
    * public long length() :获取字节数
    * public long lastModifiled() :获取最后一次修改时间

     1 public class FileDemo5 {
     2     /**
     3      * public String getAbsolutePath() :获取绝对路径
     4      * public String getPath() :获取相对路径
     5      * public String getName() :获取名称
     6      * public long length()   :获取字节数
     7      * public long lastModifiled()  :获取最后一次修改时间
     8      */
     9 
    10     public static void main(String[] args) {
    11         
    12         File file = new File("demo\a.txt");
    13         
    14         System.out.println("getAbsolutePath:" + file.getAbsolutePath());
    15         System.out.println("getPath:" + file.getPath());
    16         System.out.println("getName:" + file.getName());
    17         System.out.println("length:" + file.length());
    18         System.out.println("lastModifiled:" + file.lastModified());
    19         
    20         //打印出的时间 1416481977031  转化成年月
    21         Date d = new Date(1416481977031L);
    22         SimpleDateFormat sdt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    23         String s = sdt.format(d);
    24         System.out.println(s);
    25     }
    26     
    27 }


    F:高级获取功能

    public String[] list():获取指定目录下的所有文件或者文件夹名称数组
    public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
                             这种方法可以对拿到的File文件可以进一步做其他操作,如获取路径等
     1 public class FileDemo6 {
     2     public static void main(String[] args) {
     3         File file = new File("e:\");
     4         
     5         //public String[] list():获取指定目录下的所有文件或者文件夹名称数组
     6         String[] strArray = file.list();
     7         for(String s : strArray){
     8             System.out.println(s);
     9         }
    10         
    11         System.out.println("***********************");
    12         
    13         //public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
    14         //这种方法可以对拿到的File文件做其他操作  如获取路径等
    15         File[] fileArray = file.listFiles();
    16         for(File f : fileArray){
    17             System.out.println(f.getName());
    18         }
    19         
    20     }
    21 
    22 }


    G:过滤器功能

       A:输出指定目录下指定后缀名的文件名称
      a:先获取所有的,在遍历的时候判断,再输出
      b:先判断,再获取,最后直接遍历输出即可

    判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
    a:先获取所有的,在遍历的时候判断,再输出
     1 /**
     2  * 判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
     3  * 
     4  * 封装E盘目录
     5  * 获取该目录下所有的文件或者文件夹的File数组
     6  * 遍历该File数组得到每一个File对象,然后判断
     7  *     是否是文件
     8  *        是   再判断是否以.jpg结尾
     9  *            是  输出该文件名称
    10  *            否 不用管
    11  * @author Administrator
    12  *
    13  */
    14 public class FileDemo7 {
    15     public static void main(String[] args) {
    16         //封装E盘目录
    17         File file = new File("e:\");
    18         //获取该目录下所有的文件或者文件夹的File数组
    19         File[] fileArray = file.listFiles();
    20         //遍历该File数组得到每一个File对象,然后判断
    21         for(File f : fileArray){
    22             //是否是文件
    23             if(f.isFile()){
    24                 //是否以.jpg结尾
    25                 if(f.getName().endsWith(".jpg")){
    26                     //输出该文件名称
    27                     System.out.println(f.getName());
    28                 }
    29                 
    30             }
    31         }
    32     }
    33 
    34 }

    b:先判断,再获取,最后直接遍历输出即可     采用过滤器改进版本,在放入数组时就判断了,后直接输出

     1 public class FileDemo8 {
     2     public static void main(String[] args) {
     3         File file = new File("e:\");
     4         
     5         String[] strArray = file.list(new FilenameFilter() {
     6             
     7             @Override
     8             public boolean accept(File dir, String name) {
     9                 
    10                 return new File(dir, name).isFile() && name.endsWith(".jpg");
    11             }
    12         });
    13         
    14         for(String s : strArray){
    15             System.out.println(s);
    16         }
    17     }
    18 
    19 }



    案例批量修改文件名称  

    E:评书三国演义三国演义_001_[评书网-今天很高兴]_桃园三结义.avi   
    改成 E:评书三国演义01_桃园三结义.avi
     1 /**
     2  * 批量修改文件名称
     3  * 
     4  * 思路:
     5  * 封装目录
     6  * 获取该目录下所有的文件的File数组
     7  * 遍历该File数组,得到每一个File对象
     8  * 拼接一个新的名称
     9  * @author Administrator
    10  *
    11  */
    12 public class FileDemo9 {
    13     public static void main(String[] args) {
    14         //封装目录
    15         File srcFolder = new File("E:\评书\三国演义");
    16         
    17         //获取该目录下所有的文件的File数组
    18         File[] fileArray = srcFolder.listFiles();
    19         
    20         //遍历该File数组,得到每一个File对象
    21         for(File file : fileArray){
    22             //E:评书三国演义三国演义_001_[评书网-今天很高兴]_桃园三结义.avi
    23             //改后:  E:评书三国演义01_桃园三结义.avi
    24             
    25             String name = file.getName();//得到  三国演义_001_[评书网-今天很高兴]_桃园三结义.avi
    26             
    27             int index = name.indexOf("_");
    28             String numberString = name.substring(index + 1, index + 4);//包左不包右  右边要多一个
    29             
    30             int endindex = name.lastIndexOf('_');
    31             String nameString = name.substring(endindex);
    32             
    33             //拼接
    34             String newName = numberString.concat(nameString);//001_桃园三结义.avi
    35             
    36             File newFile = new File(srcFolder, newName);//E:\评书\三国演义\001_桃园三结义.avi
    37             //重命名
    38             file.renameTo(newFile);
    39             
    40         }
    41     }
    42 
    43 }
  • 相关阅读:
    javascript模态窗体各种用法(转)
    AjaxControlToolKit之ConfirmButton效果用法
    AjaxControlToolKit之AutoCompleteExtender用法
    文章,记录按内容分页显示,根据文章内容按字数进行分页(转)
    AjaxControlToolKit之DragPanelExtender用法
    prototype.js 1.4版开发者手册(强烈推荐) (转自http://fredren.javaeye.com/blog/112479)
    JS拖动技术 关于setCapture (转自 剑胆琴心.Net学习笔记)
    Javascript 如何实现对象的拖动?(转自闪吧)
    phpsprintf、echo、print、printf 简单
    phpxdebug配置 简单
  • 原文地址:https://www.cnblogs.com/lyywj170403/p/9269667.html
Copyright © 2011-2022 走看看