File文件类

File类的构造方法

File(String pathname): 将一个字符串路径封装成File对象
File(String parent,String child): 传入一个父级路径和子级路径
File(File parent,String child): 传入一个File类型的父级路径和子级路径

import java.io.File;

public class FileDemo1 {
    public static void main(String[] args) {
        //创建文件夹或者文件对象方式1
        File f1=new File("D:\\重要代码Demo\\文件IO对象");
        //创建文件夹或者文件对象方式2
        String s1="D:\\重要代码Demo\\文件IO对象";
        File f2 = new File(s1);
        //创建文件夹或者文件对象方式3
        File f3 = new File("D:\\", "重要代码Demo\\文件IO对象");
        //创建文件夹或者文件对象方式4
        String s2="D:\\";
        String s3="重要代码Demo\\文件IO对象";
        File f4 = new File(s2, s3);
    }
}

方法

boolean createNewFile(): 指定路径不存在该文件时时创建文件,返回true,否则返回false
boolean mkdir(): 当指定的单级文件夹不存在时创建文件夹并返回true,否则返回false
boolean mkdirs(): 当指定的多级文件夹某一级文件夹不存在时,创建多级文件夹并返回true,否则返回false
boolean delete(): 删除文件或者删除单级文件夹

package com.bianyiit.file;

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

public class FileDemo2 {
    public static void main(String[] args) throws IOException {
        //创建文件对象
        //File f1 = new File("D:\\重要代码Demo\\文件IO对象\\filedemo1.txt");
        //创建文件夹对象
        File f2 = new File("D:\\重要代码Demo\\文件IO对象\\FileDemo1\\File");
        //创建文件
        /*boolean newFile = f1.createNewFile();
        System.out.println(newFile);*/
        //创建单级文件夹
        /*boolean mkdir = f2.mkdir();
        System.out.println(mkdir);*/
        //创建多级文件夹
        /*boolean mkdirs = f2.mkdirs();
        System.out.println(mkdirs);*/
        //删除文件或者删除单级文件夹(只能一个一个的删除文件夹/文件)
        /*boolean delete1 = f1.delete();
        System.out.println(delete1);*/
        boolean delete2 = f2.delete();
        System.out.println(delete2);
    }
}

判断方法

boolean exists(): 判断指定路径的文件或文件夹是否存在
boolean isAbsolute(): 判断当前路路径是否是绝对路径
boolean isDirectory(): 判断当前的目录是否存在
boolean isFile(): 判断当前路径是否是一个文件
boolean isHidden(): 判断当前路径是否是隐藏文件

package com.bianyiit.file;

import java.io.File;

public class FileDemo3 {
    public static void main(String[] args) {
        File f1 = new File("D:\\重要代码Demo\\文件IO对象\\FileDemo1");
        File f2 = new File("FileDemo1");
        //判断文件/文件夹是否存在
        boolean exists = f1.exists();
        System.out.println("该文件夹是否存在:"+exists);
        //判断当前路径是否是绝对路径
        //绝对路径是以盘符开头的路径  相对路径没有盘符开头的路径
        boolean absolute = f1.isAbsolute();
        System.out.println("D:\\重要代码Demo\\文件IO对象\\FileDemo1是否是绝对路径:"+absolute);
        boolean absolute1 = f2.isAbsolute();
        System.out.println("FileDemo1是否是绝对路径:"+absolute1);
        //注意:如果创建文件的时候是以相对路径进行创建,那么默认在项目的根目录下面
        //判断当前目录是否存在
        boolean directory = f1.isDirectory();
        System.out.println("D:\\重要代码Demo\\文件IO对象\\FileDemo1是否存在"+directory);
        //判断当前路径是否为文件
        boolean file = f2.isFile();
        System.out.println("是否是一个文件:"+file);
        //判断是否隐藏文件
        boolean hidden = f1.isHidden();
        System.out.println("是否隐藏文件:"+hidden);
    }
}

获取功能

File getAbsoluteFile(): 获取文件的绝对路径,返回File对象
String getAbsolutePath(): 获取文件的绝对路径,返回路径的字符串
String getParent(): 获取当前路径的父级路径,以字符串形式返回该父级路径
File getParentFile(): 获取当前路径的父级路径,以字File对象形式返回该父级路径
String getName(): 获取文件或文件夹的名称
String getPath(): 获取File对象中封装的路径
long lastModified(): 以毫秒值返回最后修改时间
long length(): 返回文件的字节数
boolean renameTo(File dest): 将当前File对象所指向的路径 修改为 指定File所指向的路径

package com.bianyiit.file;

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

public class FileDemo4 {
    public static void main(String[] args) {
        //File getAbsoluteFile(): 获取文件的绝对路径,返回File对象,如果只单纯使用一个对象,那么就会返回项目路径\\文件文件IO对象
        File f1 = new File("D:\\重要代码Demo\\文件IO对象\\FileDemo1\\a.txt");
        File absoluteFile = f1.getAbsoluteFile();
        System.out.println(absoluteFile);
        //String getAbsolutePath(): 获取文件的绝对路径,返回路径的字符串
        String absolutePath = f1.getAbsolutePath();
        System.out.println(absolutePath);
        //String getParent(): 获取当前路径的父级路径,以字符串形式返回该父级路径
        String parent = f1.getParent();
        System.out.println(parent);
        //File getParentFile(): 获取当前路径的父级路径,以字File对象形式返回该父级路径
        File parentFile = f1.getParentFile();
        System.out.println(parentFile);
        //String getName(): 获取文件或文件夹的名称
        String name = f1.getName();
        System.out.println(name);
        //String getPath(): 获取File对象中封装的路径
        String path = f1.getPath();
        System.out.println(path);
        //long lastModified(): 以毫秒值返回最后修改时间
        long l = f1.lastModified();
        Date date = new Date(l);
        System.out.println(date.toLocaleString());
        //long length(): 返回文件的字节数
        long length = f1.length();
        System.out.println(length);
        //  boolean renameTo(File dest):  将当前File对象所指向的路径 修改为 指定File所指向的路径
        File f2 = new File("D:\\重要代码Demo\\文件IO对象2\\b.txt");  //已经将a.txt从以前的路径迁移到当前路径下了,并且文件名也已经改了
        boolean b = f1.renameTo(f2);
        System.out.println(b);
    }
}
//输出结果:
	D:\重要代码Demo\文件IO对象\FileDemo1\a.txt
	D:\重要代码Demo\文件IO对象\FileDemo1\a.txt
	D:\重要代码Demo\文件IO对象\FileDemo1
	D:\重要代码Demo\文件IO对象\FileDemo1
	a.txt
	D:\重要代码Demo\文件IO对象\FileDemo1\a.txt
	2019-11-19 19:47:25
	0
	true

其他功能

String[] list(): 以字符串数组的形式返回当前路径下所有的文件和文件夹的名称
File[] listFiles(): 以File对象的形式返回当前路径下所有的文件和文件夹的名称
static File[] listRoots(): 获取计算机中所有的盘符

package com.bianyiit.file;

import java.io.File;

public class FileDemo5 {
    public static void main(String[] args) {
        //String[] list():以字符串数组的形式返回当前路径下所有的文件和文件夹的名称
        File f1 = new File("D:\\重要代码Demo");
        String[] list = f1.list();
        for (String s : list) {
            System.out.println(s);
        }
        //File[] listFiles():以File对象的形式返回当前路径下所有的文件和文件夹的名称
        File[] files = f1.listFiles();
        for (int i = 0; i < files.length; i++) {
            System.out.println(files[i]);
        }
        //static File[] listRoots():获取计算机中所有的盘符
        File[] files1 = File.listRoots();
        for (File file : files1) {
            System.out.println(file);
        }
    }
}
//输出结果:
	WeChatProjects
	workspace
	文件IO对象
	文件IO对象2
	D:\重要代码Demo\WeChatProjects
	D:\重要代码Demo\workspace
	D:\重要代码Demo\文件IO对象
	D:\重要代码Demo\文件IO对象2
	C:\
	D:\

file类中递归的应用

1.找出某目录下的所有文件
package com.file;

import java.io.File;

public class GetDirectory {
    //获取e盘a文件下所有的文件
    public static void main(String[] args) {
        /*分析
        * 1.要获取a文件下所有的文件和文件夹对象
        * 2.判断这个对象是文件还是文件夹,是文件,直接输出,是文件夹
        * 又要获取改文件夹下的所有文件和文件夹
        * 3.以此类推下去,一直判断,最终得到a文件夹下所有的文件(递归思想)*/
        //定义文件对象,给定文件夹
        File f=new File("E:\\a");
        getFile(f);

    }

    private static void getFile(File f) {
        //获取a文件下的所有文件和文件夹
        File[] files = f.listFiles();
        //遍历files,得到单个文件或文件夹对象
        for (File file : files) {
           // System.out.println(file);
            //判断是否为文件夹,是,继续获取下面的文件和文件夹,不是,直接输出
            if(file.isDirectory()){//是文件夹,则继续获取该文件夹下的文件和文件夹
                getFile(file);//递归调用
            }else{//是文件
                System.out.println(file);
            }
        }
    }
}

2.删除某文件夹下所有的文件和文件夹
package com.file;

import java.io.File;

public class DeleteFile {
    public static void main(String[] args) {
        //定义文件对象
        File f=new File("E:\\a");
        delete(f);
    }
    public static void delete(File file){
        //获取该文件下所有的文件和文件夹
        File[] files = file.listFiles();
        //遍历files,得到单个的file
        for (File file1 : files) {
            if(file1.isFile())
            {//存在文件就删除
                file1.delete();
            }else if(file1.isDirectory()){//不是就打开文件夹
                delete(file1);
            }
        }
        file.delete();
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值