IO流(File文件类)

目录

1、File类的概述和构造方法

2、File类的创建功能

3、File类的删除功能

4、File类的重命名功能

5、File类的判断功能

6、File类的获取功能

7、文件名称过滤器的概述及使用


1、File类的概述和构造方法

File类的概述
    查看API
  

 文件和目录路径名的抽象表示形式
 这个File类可以用来表示文件,也可以用来表示目录

 构造方法
    File(String pathname):根据一个路径得到File对象    
    File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
    File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

package org.westos.demo;

import java.io.File;

public class MyTest {
    public static void main(String[] args) {

        // File(String pathname)
        // 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例

        File file = new File("a.txt");
        System.out.println(file);

        File file1 = new File("C:\\Users\\ShenMouMou\\Desktop\\b.txt");

        //父路径,子文件名
        File file2 = new File("C:\\Users\\ShenMouMou\\Desktop", "b.txt");
        
        // File(File parent, String child)
        // 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
        File parent = new File("C:\\Users\\ShenMouMou\\Desktop");

        File file3 = new File(parent, "b.txt");

    }
}

2、File类的创建功能

创建功能
    public boolean createNewFile():
创建一个新的文件 返回值为true,表示文件创建成功,如果存在这样的文件,就不创建了,重复创建返回false

package org.westos.demo2;

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

public class MyTest {
    public static void main(String[] args) throws IOException {
        File file = new File("./e.txt");
        //创建一个新文件,返回值为true,表示文件创建成功,重复创建返回false
        boolean b = file.createNewFile();
        System.out.println(b);

        File file2 = new File("E:\\springCloudIDEAProject\\20211130-File-类-上午\\b.txt");
        //创建一个新文件
        boolean b2 = file2.createNewFile();
        System.out.println(b2);
        
        File file3 = new File("../../c.txt");// ..表示上级目录
        //创建一个新文件,返回值为true,表示文件创建成功,重复创建返回false
        boolean b3= file3.createNewFile();
        System.out.println(b3);
    }
}


    public boolean mkdir():
创建文件夹 如果存在这样的文件夹,就不创建了 注意这个方法只能创建单层目录 如果创建多层目录得一层一层创建
    public boolean mkdirs():
创建文件夹,如果父文件夹不存在,会帮你创建出来 可以创建多层目录 当然也可以创建单层目录

package org.westos.demo2;

import java.io.File;

public class MyTest2 {
    public static void main(String[] args) {
        File file = new File("demo");
        //创建一个文件夹,第一次创建成功返回true,重复创建返回false
        boolean b = file.mkdir(); //创建单级目录
        System.out.println(b);

        File file2 = new File("aaa/bbb/ccc");
        //创建一个文件夹,第一次创建成功返回true,重复创建返回false
        boolean b2 = file2.mkdirs(); //创建单级或多级目录
        System.out.println(b2);
    }
}

注意事项:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
     相对路径:没有带盘符的路径
     绝对路径:带有盘符的路径

3、File类的删除功能

删除功能
    public boolean delete():删除文件或者文件夹 
    注意:删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面有文件,则不能删除
               Java中的删除不走回收站

package org.westos.demo2;

import java.io.File;

public class MyTest3 {
    public static void main(String[] args) {
        File file = new File("a.txt");
        //删除文件
        boolean b = file.delete();
        System.out.println(b);

        File file1 = new File("demo");
         boolean delete = file1.delete();
        System.out.println(delete);

        //delete(); 删除目录时,只能删除空目录,非空目录删不了。
        File file2 = new File("aaa");
        delete = file2.delete();
        System.out.println(delete);
    }
}

4、File类的重命名功能

重命名功能
    public boolean renameTo(File dest):把文件重命名为指定的文件路径
    注意事项:
        如果路径名相同,就是改名。
        如果路径名不同,就是改名并剪切。

package org.westos.demo3;

import java.io.File;

public class MyTest {
    public static void main(String[] args) {
        File file = new File("b.txt");
        File file1 = new File("eee.txt");
        //重命名:你要命名的文件和和你传入进来的这个File对象在同一个路径下,就是重命名
        boolean b = file.renameTo(file1);
        System.out.println(b);

        //剪贴功能:你要命名的文件和和你传入进来的这个File对象不在同一个路径下,就是剪切
        File file2 = new File("e.txt");
        File file3 = new File("C:\\Users\\ShenMouMou\\Desktop\\e.txt");
        boolean b1 = file2.renameTo(file3);
        System.out.println(b1);
    }
}

5、File类的判断功能

判断功能
    public boolean isDirectory():    判断是否是目录
    public boolean isFile():    判断是否是文件
    public boolean exists():    判断是否存在

package org.westos.demo3;

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

public class MyTest2 {
    public static void main(String[] args) throws IOException {
        File file = new File("aaa");
        //isDirectory() 判断是不是文件夹
        boolean directory = file.isDirectory();
        System.out.println(directory);
        //isFile();判断是不是文件
        boolean file1 = file.isFile();
        System.out.println(file1);

        File file2 = new File("b.txt");
        file2.createNewFile();
        //判断文件或目录是否存在
        boolean exists = file2.exists();
        System.out.println(exists);
    }
}

    public boolean canRead():    判断是否可读
    public boolean canWrite():    判断是否可写
    public boolean isHidden():    判断是否隐藏
    public boolean isAbsolute(); 判断是否使用的是绝对路径

package org.westos.demo3;

import java.io.File;

public class MyTest3 {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\ShenMouMou\\Desktop\\e.txt");
        //判断文件是否可读
        boolean b = file.canRead();
        //判断文件是否可写
        boolean b1 = file.canWrite();
        System.out.println(b);
        System.out.println(b1);
        //判断文件是否隐藏
        boolean hidden = file.isHidden();
        System.out.println(hidden);

        //判断文件是否使用绝对路径
        boolean b2 = file.isAbsolute();
        System.out.println(b2);
        //判断是不是可执行文件
      /*  File file1 = new File("D:\\JavaJDK1.8_install\\bin\\java.exe");
        boolean b3 = file.canExecute();//测试应用程序是否可执行
        System.out.println(b3);*/
    }
}

6、File类的获取功能

获取功能
    public String getAbsolutePath():    获取绝对路径
    public String getPath():        获取相对路径
    public String getParent()  
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
    public File getParentFile()  
返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。 
    public String getName():        获取名称
    public long length():            获取长度。字节数

package org.westos.demo;

import java.io.File;

public class MyTest {
    public static void main(String[] args) {
        File file = new File("a.txt");

        String absolutePath = file.getAbsolutePath();
        System.out.println(absolutePath);

        String path = file.getPath();
        System.out.println(path);

        File file1 = new File("C:\\Users\\86191\\Desktop\\b.txt");
        String parent = file1.getParent();
        System.out.println(parent);

        File parentFile = file1.getParentFile();
        System.out.println(parentFile);

        String name = file1.getName();
        System.out.println(name);

        long length = file1.length();
        System.out.println(length);
    }
}

    public long getTotalSpace()  
返回此抽象路径名指定的分区大小。 返回总容量 单位字节
    public long getFreeSpace()  
返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节

package org.westos.demo;

import java.io.File;

public class MyTest1 {
    public static void main(String[] args) {
        File file = new File("D:");

        long totalSpace = file.getTotalSpace();
        System.out.println(totalSpace/1024/1024/1024.0+".GB");

        long freeSpace = file.getFreeSpace();
        System.out.println(freeSpace/1024/1024/1024+".GB");
    }
}


    public long lastModified():        获取最后一次的修改时间,毫秒值

package org.westos.demo;

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

public class MyTest2 {
    public static void main(String[] args) throws ParseException, IOException {
        File file = new File("C:\\Users\\86191\\Desktop\\e.txt");
        file.createNewFile();
        //获取文件最后一次的修改时间,单位是毫秒
        long l = file.lastModified();
        //把毫秒值,转换成 年月日,时分秒
        System.out.println(l);
        Date date = new Date(l);
        String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
        System.out.println(format);

        String dateStr="2020-11-20 14:20:30";
        long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr).getTime();
        //设置文件的最后一次修改时间
        file.setLastModified(time);

    }
}


    public String[] list():            获取指定目录下的所有文件或者文件夹的名称数组

package org.westos.demo;

import java.io.File;

public class MyTest3 {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\86191\\Desktop\\demo");
        //获取该目录下所有的文件或文件夹的名称的数组
        String[] list = file.list();
        for (String name : list) {
            File file1 = new File("C:\\Users\\86191\\Desktop\\demo", name);
            if (file1.isFile() && name.endsWith(".jpg")) {
                System.out.println(name);
            }
        }
    }
}


    public File[] listFiles():        获取指定目录下的所有文件或者文件夹的File数组 

package org.westos.demo;

import java.io.File;

public class MyTest4 {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\86191\\Desktop\\demo");
        //获取该目录下所有的文件或文件夹的File数组
        File[] files = file.listFiles();
        for (File f : files) {
            if(f.isFile()&&f.getName().endsWith(".jpg")){
                System.out.println(f.getName());
            }
        }
    }
}

7、文件名称过滤器的概述及使用

文件名称过滤器的概述
    public String[] list(FilenameFilter filter)

package org.westos.demo;

import java.io.File;
import java.io.FilenameFilter;

public class MyTest5 {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\86191\\Desktop\\demo");
        String[] list = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File f = new File(dir, name);
                return f.isFile()&&f.getName().endsWith(".jpg");
            }
        });
        for (String s : list) {
            System.out.println(s);
        }
    }
}


    public File[] listFiles(FilenameFilter filter)

package org.westos.demo;

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

public class MyTest6 {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\86191\\Desktop\\demo");
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File file1) {
                return file1.isFile() && file1.getName().endsWith(".jpg");
            }
        });
        for (File file1 : files) {
            System.out.println(file1.getName());
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值