java File类

来源:互联网 发布:无限极网络电视盒 编辑:程序博客网 时间:2024/06/15 05:29

Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作。本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看一下。

构造函数

public class FileDemo {     public static void main(String[] args){         //构造函数File(String pathname)         File f1 =new File("c:\\abc\\1.txt");         //File(String parent,String child)         File f2 =new File("c:\\abc","2.txt");         //File(File parent,String child)         File f3 =new File("c:"+File.separator+"abc");//separator 跨平台分隔符         File f4 =new File(f3,"3.txt");         System.out.println(f1);//c:\abc\1.txt     } }

创建方法

1.boolean createNewFile() 不存在返回true 存在返回false
2.boolean mkdir() 创建目录
3.boolean mkdirs() 创建多级目录

删除方法

1.boolean delete()
2.boolean deleteOnExit() 文件使用完成后删除

import java.io.File;import java.io.IOException;public class FileDemo2 {    public static void main(String[] args){        File f =new File("d:\\1.txt");        try {            System.out.println(f.createNewFile());//当文件存在时返回false            System.out.println(f.delete());//当文件不存在时返回false        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

判断方法

1.boolean canExecute() 判断文件是否可执行
2.boolean canRead() 判断文件是否可读
3.boolean canWrite() 判断文件是否可写
4.boolean exists() 判断文件是否存在
5.boolean isDirectory()  当且仅当表示此抽象路径名的文件是一个目录该方法返回true,否则该方法返回false
6.boolean isFile()
7.boolean isHidden()
8.boolean isAbsolute() 判断是否是绝对路径 文件不存在也能判断

获取方法

1.String getName() 获取文件名
2.String getPath() 该方法返回此抽象路径名的路径名字符串的形式。
3.String getAbsolutePath()
4.String getParent()//如果没有父目录返回null
5.long lastModified()//获取最后一次修改的时间
6.long length()
7.boolean renameTo(File f)
8.File[] liseRoots()//获取机器盘符
9.String[] list()
10.String[] list(FilenameFilter filter)

列出磁盘下的文件和文件夹

public class FileDemo3 {     public static void main(String[] args){         File[] files =File.listRoots();         for(File file:files){             System.out.println(file);             if(file.length()>0){                 String[] filenames =file.list();                 for(String filename:filenames){                     System.out.println(filename);                 }             }         }     } }

文件过滤

import java.io.File; import java.io.FilenameFilter; public class FileDemo4 {     public static void main(String[] args){         File[] files =File.listRoots();         for(File file:files){             System.out.println(file);             if(file.length()>0){                 String[] filenames =file.list(new FilenameFilter(){                     //file 过滤目录 name 文件名                     public boolean accept(File file,String filename){                         return filename.endsWith(".mp3");                     }                 });                 for(String filename:filenames){                     System.out.println(filename);                 }             }         }     } }

File[]  listFiles()

File[] listFiles(FilenameFilter filter)

利用递归列出全部文件

public class FileDemo5 {    public static void main(String[] args){        File f =new File("e:\\音樂");        showDir(f);    }    public static void showDir(File dir){        System.out.println(dir);        File[] files =dir.listFiles();        for(File file:files){            if(file.isDirectory())                showDir(file);            else                 System.out.println(file);        }    }}

移动文件

找出d盘下所有的 .java 文件,拷贝至 c:\jad 目录下,并将所有文件的类型由.java 修改为.jad 。

public class Test5 {    public static void main(String[] args){        File f1 = new File("d:\\");        moveFile(f1);    }public static void moveFile(File file){    File[] files=file.listFiles();    for(File f:files){        if(f.isDirectory())            moveFile(f);        else{            if(f.getName().endsWith(".java"))                f.renameTo(new File("c:\\jad\\"+            f.getName().substring(0,f.getName().lastIndexOf('.'))+".jad"));            }        }    }}


FileFilter
/**
* @param pathname The abstract pathname to be tested
*/

boolean accept(File pathname)
用法示例:
import java.io.File;
import java.io.FileFilter;

public class Main {

  public static void main(String[] args) {

    File cwd = new File("D:\\3dmax2014");
    File[] files = cwd.listFiles(new MyFileFilter());
    for (int i = 0; i < files.length; i++) {
      System.out.println(htmlFiles[i]);
    }
  }
}

class MyFileFilter implements FileFilter {

  public boolean accept(File pathname) {

    if (pathname.getName().endsWith(".html"))
      return true;
    if (pathname.getName().endsWith(".htm"))
      return true;
    return false;
  }
}


FilenameFilter
 
/**
* @param dir - the directory in which the file was found.
* @param name - the name of the file.
*/

boolean accept(File dir,  String name)

 

用法示例:
import java.io.File;
import java.io.FilenameFilter;

class MyFilenameFilter implements FilenameFilter {
  String houzhui;

  public ExtensionFilter(String ext) {
    this.ext = "." + houzhui;
  }

  public boolean accept(File dir, String name) {
    return name.endsWith(houzhui);
  }
}

public class Main {
  public static void main(String args[]) {
    File file = new File("D:\\3dmax2014");
    FilenameFilter filenameFilter = new MyFilenameFilter("html");
    String s[] = file.list(filenameFilter);
    for (int i = 0; i < s.length; i++) {
      System.out.println(s[i]);
    }
  }
}

文件排序
排序规则:目录排在前面,按字母顺序排序文件列表
 
List<File> files = Arrays.asList(new File("<目录>").listFiles());
Collections.sort(files, new Comparator<File>(){
    @Override
    public int compare(File o1, File o2) {
    if(o1.isDirectory() && o2.isFile())
        return -1;
    if(o1.isFile() && o2.isDirectory())
            return 1;
    return o1.getName().compareTo(o2.getName());
    }
});

for(File f : files)
    System.out.println(f.getName());

以上就是Java File类的全部属性和方法,我们只需简单地调用上面的方法即可完成对指定文件的操作,希望本文对你有所帮助。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃减肥药上火怎么办呢 魔域怀旧版新区进不去怎么办 dnf十周年礼盒打开了怎么办 房地产项目完成后企业员工怎么办啊 韩服lol延迟太高怎么办 LOL等级奖励卡掉怎么办 魔域手机号换了怎么办 买的qq号找回了怎么办 买dnf账号被找回怎么办 微博账号已锁定怎么办 抖音账号封手机怎么办 手机号码绑定被别人占用了怎么办 DNF账号给找回了怎么办 转转上被骗了200怎么办 7彩账号被锁定怎么办 猪不吃食没精神怎么办 cf手游签到没给怎么办 cf说停止运行了怎么办 cf端游永久禁赛怎么办 cf端游爆破怕死怎么办 王者荣耀累计扣分12分怎么办 去医院看病没带身份证怎么办 ps4星战2鬼服怎么办 冒险岛英雄五转怎么办 6儿童视力低常怎么办 腰干活累的酸痛怎么办 狗狗体力很差怎么办啊 脉差总是五十多怎么办 吃过敏药嗜睡乏力怎么办 写字紧张心跳的快手抖怎么办 怀孕食欲差没精神怎么办 爬个三楼就喘了怎么办 头被篮球砸了怎么办 打球手指肿了很久怎么办 客人吃饭跑单了怎么办 脑子总是记不住东西怎么办 穿的鞋有味道怎么办 生完孩子血糖高怎么办 生了孩子子宫大怎么办 生完孩子阴吹怎么办 怀孕初期感冒嗓子发炎怎么办