File文件操作

File用来将文件或者文件夹封装成对象,方便对文件与文件夹属性信息进行操作;

File对象可以作为参数进行传递给流的构造函数;

重要字段:static String separator 余系统有关的默认的名称的分隔符,为了使用方便,它被表示为一个字符串;

调用的话,使用File.separator;

File file = new File("1.txt");

将1.txt封装成文件对象

File file = new File("paraent","child");

将父目录和其下的文件分开操作,可以不修改父目录,只操作文件;

File file = new File(d,"1.txt");

sop(file);

打印的是文件路径;

File 文件类的常用方法:

1,创建

  boolean createNewFile();在指定位置创建文件,如果该文件已经存在,则不再创建,直接返回false;

  和输出流不一样,输出流对象一建立就创建文件,如果文件已经存在则会发生覆盖;

  createTempFile(paraent, child)

  createTempFile(paraent ,child,directory)

  mkdir();创建目录,如果父级目录不存在,子文件夹则不会创建;即只能创建一级目录,隔两层父级目录就不存在了;

  mkdirs();当父级目录没有成功创建,则先创建父级目录,然后再创建子文件夹;建议使用这个;

2,删除

  boolean delete();删除成功返回 true 删除失败返回false

  deleteOnExit();退出时删除//好用,不管有没有出现异常;

3,判断

  boolean canExecute() 判断该文件是否可执行;

  boolean canRead();

  boolean canWrite();

  boolean exists(); 判断文件是否存在;

  boolean isFile() 判断是否是文件;

  boolean isDirectory();判断是否是文件夹;

  boolean isAbsolute();是否为绝对路径;//只要有盘符,即使文件不存在也可以加以判断;

  boolean isHidden();判断是否为隐藏文件;

4,获取信息

  get方法:返回String字符串

    getNmae();返回文件或者文件夹的名称;

    getPath();返回路径

    getParaent()//该方法返回的是绝对路径中的父目录,相对路径会返回空;如果想对路径中,有上一层目录,该目录即为返回结果;

    getAbsoulutePath();仅返回绝对路径

    getAbsoluteFile();返回并封装成文件对象

    length();返回字节数;

    lastModified();返回最后一次被修改的是时间

    renameTo();同一个文件夹下重命名,,不同文件夹下移动(剪切)

  list方法:

    String list();打印当前文件下文件或者文件夹的名称(包含隐藏文件),调用前需要先判断是否存在以及是否为文件夹;

    File[] listFiles();全路径名;开发中使用这个;

    File[] listRoots();列出系统中的有效盘符;

    FilenameFilter 接口 文件名过滤器  唯一方法 boolean accept(目录,文件名) ,过滤文件目录中的指定文件名称

    用法 list(FilenameFilter filter)在获取list的时候传入匿名内部类;

    list(new FilenameFilter(){

      public boolean accept(File file, String name){

        if(name.endsWith(".bmp"))

        retuen true; //true获取    // false不获取

        return name.endsWith(".bmp);

      }

    });

使用递归方法打印指定目录下的所有文件夹和文件

public static void showDir(File dir){

  System.out.println(dir);//先打印当前目录的名称;

  File[] files = dir.listFiles();//获取文件夹下的子文件夹以及文件的全路径名称

  for(File file : files){//超级for循环遍历

    if(file.isDirectory()){

      showDir(file);//如果访问的还是文件夹则继续遍历;

    }else{//文件对象就两种除了文件就是文件夹

      System.out.println(file);

    }

  }

}

 

使用递归删除指定的文件夹以及文件

特别注:在Java中删除操作不走回收站,一旦删除就无法找回,一定谨慎使用!

public static void removeDir(File dir){

  File[] files = dir.listFiles();

  for(File file: fies){

    if(file.isDirectory()){//如果获取的是文件夹就继续遍历,不是文件夹就是文件,文件的话可以直接删除;

      removeDir(file);

    }else{

      System.out.println(file.toString()+"    "+file.delete());//加上打印语句是为了检验删除是否成功!

    }  

  }

  System.out.println(dir+"    "+dir.delete());//当好所有的文件都被删除以后就可以删除该级的文件夹

}

 

转载于:https://www.cnblogs.com/steven-system-start/p/11219983.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值