文件对象的相关方法

 第一组: 基础方法

1.getName() 获取文件名称  

2.length() 获取文件长度,目录长度不准确

3.lastModified() 获取最后一次修改时间   返回毫秒值

 public static void main(String[] args) {
        File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
        File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
        File file3= new File("E:\\Apesource\\Java.Text");//不存在的文件

        //1.getName()  获取文件名称
        System.out.println(file1.getName());
        System.out.println(file2.getName());
        System.out.println(file3.getName());

        //2.length() 只能获取文件的长度,目录不精致
        System.out.println("文件名:" + file2.getName()  + " 长度:" + file2.length());
        System.out.println("文件名:" + file1.getName()  + " 长度:" + file1.length());

        //3.lastModified():获取最后一次的修改时间
        System.out.println("文件名:" + file2.getName()  + " 时间:" + file2.lastModified());
        System.out.println("文件名:" + file2.getName()  + " 时间:" + new Date(file2.lastModified()));
    }

第二组: 获取路径

1.getAbsolutePath()  获取绝对路径

2.getPath()  获取路径

3. getCanonicalFile()  获取规范路径

    public static void main(String[] args) throws IOException {
        File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
        File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
        File file3= new File("E:\\Apesource\\Java.Text");//不存在的文件
        File file4 = new File("../yyy.txt");

        //1.获取文件的绝对路径
        System.out.println(file4.getAbsolutePath());


        //2.获取文件的路径
        System.out.println(file4.getPath());


        //2.获取规范路径
        System.out.println(file4.getCanonicalFile());

    }

运行结果: 

 

  第三组: 判断和删除

1.exists():判断文件是否存在 返回boolean类型
2.delete():删除某个文件(夹) 文件夹必须为空才可以删除 不经过回收站  返回boolean类型
package com.mgl.io;

import java.io.File;

/**
 * Tony 的 java
 **/
@SuppressWarnings("all")
public class Demo3_ioMethod03 {
    public static void main(String[] args) {
        File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
        File file2 = new File("E:\\Apesource\\Java\\Text\\text.txt");//指向文件
        File file3= new File("E:\\Apesource\\Java.Text");//不存在的文件
        File file = new File("E:\\123123");
        //1.exists():判断文件是否存在
        System.out.println(file1.getPath() + " 文件是否存在【" + file1.exists() + "】");
        System.out.println(file2.getPath() + " 文件是否存在【" + file2.exists() + "】");
        System.out.println(file3.getPath() + " 文件是否存在【" + file3.exists() + "】");

        System.out.println("");
        //2.delete():删除某个文件(夹) 文件夹必须为空才可以删除 不经过回收站

        System.out.println(file2.getPath() + " 文件是否删除成功【" + file2.delete() + "】");
        System.out.println(file2.getPath() + " 文件是否存在【" + file2.exists() + "】");
    }
}

运行结果 :

第四组: 创建的文件

1.createNewFile(): 创建一个具体的文件,不可以创建文件夹(目录)
2.mkdir():创建文件夹  如果存在不创建, 他的上层目录不存在也不创建
3.mkdirs(): 创建多级目录
package com.mgl.io;

import java.io.File;
import java.io.IOException;

/**
 * Tony 的 java
 **/
@SuppressWarnings("all")
public class Demo04_ioMethod04 {
    public static void main(String[] args) throws IOException {
        File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
        File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
        File file3 = new File("E:\\Apesource\\abc.txt");//不存在的文件
        File file4 = new File("E:\\ABC");//不存在的文件
        File file5 = new File("E:\\test\\ABC\\123");//不存在的文件

        //1.createNewFile() 创建一个具体的文件,不可以创建文件夹(目录)
        System.out.println(file3.createNewFile());
        System.out.println(file4.createNewFile());

        //2.mkdir()创建文件夹  如果存在不创建, 他的上层目录不存在也不创建
        System.out.println(file4.mkdir());
        System.out.println(file5.mkdir());

        //3.mkdirs: 创建多级目录
        System.out.println(file5.mkdirs());

    }
}

第五组: 获取指定目录文件

 1.list()方法 获取指定目录下的文件或目录的名称 返回的是一个字符串数组

2.listFiles() 获取指定目录下的文件或目录 返回类型是一个File数组

package com.mgl.io;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Tony 的 java
 **/
@SuppressWarnings("all")
public class Demo5_ioMethod05 {
    public static void main(String[] args) {
        File file1 = new File("E:\\Apesource\\Java");
        //1.list()方法 获取指定目录下的文件或目录的名称   返回的是一个字符串数组
        String[] list = file1.list();
        for (int i = 0; i < list.length; i++) {
            System.out.println(list[i]);
        }
        System.out.println("------------------------------");
        //2.listFiles() 获取指定目录下的文件或目录   返回类型是一个File数组
        File[] files = file1.listFiles();
        for (File file : files) {
            System.out.print("【" + file.getName() + "】" +  " ");
            System.out.print("文件大小" +  file.length() + " ");
            //格式化日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date date = new Date(file.lastModified());
            String format = sdf.format(date);
            //输出修改时间
            System.out.println(format);
        }

    }
}

输出结果:

第六组: 判断对象是目录还是文件

1.isDirectory() :判断对象是不是目录   返回类型boolean

2.isFile() : 判断对象是不是文件   返回类型boolean

package com.mgl.io;

import java.io.File;

/**
 * Tony 的 java
 **/
@SuppressWarnings("all")
public class Demo6_ioMethod06 {
    public static void main(String[] args) {
        File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
        File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
        //1.isDirectory isFile  判断他是目录还是文件
        System.out.println("f1是目录【" + file1.isDirectory() + "】");
        System.out.println("f2是文件【" + file1.isDirectory() + "】");
    }
}

返回结果:

 

3.遍历文件夹下的所有文件:递归+isDirectory+isFile

    //2.深层遍历
    public static void showFileTree(File dir){
        File[] files = dir.listFiles();
        for (File file : files) {
            boolean isDir = file.isDirectory();
            if (isDir == false){//是一个文件
                System.out.print("文件名称为:" + file.getName());
                System.out.println("文件大小为:" + file.length());
            }else {//是一个目录
                System.out.print("目录名称为:" + file.getName());
                System.out.println("目录长度:" + file.list().length);
                showFileTree(file);
            }
        }

    }

第七组: 文件过滤

FileFilter() + endWith()

package com.mgl;

import java.io.File;
import java.io.FileFilter;

/**
 * Tony 的 java
 **/
@SuppressWarnings("all")
public class FileFilter_ {
    public static void main(String[] args) {
        //文件过滤
        File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)

        File[] files = file1.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                //endsWith() 方法用于测试字符串是否以指定的后缀结束。
                if (pathname.getName().endsWith(".txt")){
                    return true;
                }
                return false;
            }
        });
       for (int i =0;i < files.length;i++){
           System.out.println(files[i]);
       }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值