Java File类的使用

简介:

File名字会误导人,它不是文件而文件和目录路径名的抽象表现形式,该类可以用来删除文件或目录、测试文件或目录是否存在、返回此抽象路径名父目录的路径名字符串、对指定目录下文件名的遍历(包括子目录,要用到递归)等等,总之此类只涉及文件(空壳子)不涉及文件内容。

具体:

构造方法

这里写图片描述

示例(注意生成的File对象是“路径”并不代表生成了对应的文件或目录,要想生成要用到mkdirs()和createNewFile()):

public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
        File f1 = new File("D:\\javafile");
        System.out.println(f1.exists());
        // 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
        File f2 = new File("D:\\学习文件", "1.txt");
        // 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
        File f3 = new File("c:" + File.separator + "abc");// separator 跨平台分隔符
        File f4 = new File(f3, "3.txt");
        System.out.println(f1);// D:\javafile


    }

常用方法

删除:

示例代码:

File f1 = new File("D:\\javafile");
        System.out.println(f1.exists());
        if (!f1.exists()) {
            try {
                // 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
                f1.createNewFile();
                System.out.println(f1.exists());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        else f1.delete();

获取方法

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()//获取机器盘符

File f1 = new File("D:\\javafile");
        System.out.println(f1.exists());
        System.out.println(f1.getName());// javafile
        System.out.println(f1.getParentFile());// D:\
        System.out.println(f1.getPath());// D:\javafile
        Date dt = new Date(f1.lastModified());// 要转换为date类型
        System.out.println(dt);// Mon May 02 11:35:18 CST 2016
        System.out.println(f1.length());
        File f2 = new File("D:\\javaio");
        System.out.println(f1.renameTo(f2) + "...............");

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

 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);
                     }
                 }
             }

文件过滤

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 f1 = new File("d:\\");
        moveFile(f1);
    }
public static void moveFile(File dir){
    File[] files=dir.listFiles();
    for(File file:files){
        if(file.isDirectory())
            moveFile(file);
        else{
            if(file.getName().endsWith(".java"))
                file.renameTo(new File("c:\\jad\\"+
            file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad"));
            }
        }

利用递归列出全部文件

 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);
        }
    }
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值