IO流前奏 之文件

数据在电脑中是以文件的形式存在的,即文件是数据的载体

File

构造方法:

File(String pathname)

通过给定路径名字符串转化为抽象路径名来创建一个File实例
例:

File f=new File("D:\\abc")//封装目录
File f1=new File("D:\\abc.txt") //封装文件

相对路径与绝对路径
相对路径:不带盘符号的路径,使用IDEA时,若采用相对路径生成的文件是存储在当前Project的根目录之下
绝对路径:带有盘符号的完整路径

常用方法

1.创建文件,目录

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

public class demo1 {
    public static void main(String[] args) throws IOException {
        File file=new File("D:\\1234.txt");
        boolean b = file.createNewFile();//判断文件是否存在,若存不存在则创建并返回true,若存在则返回false
        System.out.println(b);
        File file1=new File("D:\\1234");
        boolean b1 = file1.mkdir();//创建单级目录
        System.out.println(b1);
        File file2=new File("D:\\1234\\456");
        boolean b2=file2.mkdirs();//创建多级目录,结果为在D盘中创建123目录在1234中创建456目录,创建成功返回true
        System.out.println(b2);
    }
}
true
true
true

在这里插入图片描述
2.删除

boolean b = file.delete();//返回值表示是否删除成功

注意:delete只能删除掉空的目录,非空无法直接用delete删除
递归删除非空文件夹

import java.io.File;
public class demo{
    public static void main(String[] args)  {
        File file=new File("D:\\123");
        digui(file);
    }

    private static void digui(File file) {
        if (file.isFile()) {
            file.delete();
    }
        if (file.listFiles()!=null){
            File[] files = file.listFiles();
            for (File file1 : files) {
                digui(file1);
            }
        }
        file.delete();
    }
}

4.重命名文件

file.renameTo(new File())//重命名文件,如果使用相对路径则会将原文件改名并剪切到IDEA当前project目录下,使用绝对路径则与原文件路径一致

5.关于获得的一些操作

import java.io.File;

public class demo1 {
    public static void main(String[] args) {
        File file=new File("D:\\1234.txt");
        String name = file.getName();//获得文件名
        long length=file.length();//获得文件的大小
        String s=file.getAbsolutePath();//获得绝对路径,返回字符串形式
        File s1=file.getAbsoluteFile();//获取绝对路径,返回file类型
        long l=file.lastModified();//获取文件最后的修改时间
    }
}

6.判断的一些操作

import java.io.File;


public class demo1 {
    public static void main(String[] args)  {
        File file=new File("D:\\1234.txt");
        boolean b=file.isDirectory();//判断是否是目录
        boolean b1=file.isFile();//判断是否是文件
        boolean b2=file.canRead();//判断是否可读
        boolean b3=file.canWrite();//判断是否可以写
        boolean b4=file.canExecute();//判断是否是可执行文件
        boolean b5=file.isHidden();//判断文件是否是隐藏的
    
    }
}

注意:
win系统中所有文件类型都是可执行的,所以不论使用什么类型的文件来测试canExecute()方法得到的返回值都是true

7.获取目录下所有的内容

import java.io.File;


public class demo1 {
    public static void main(String[] args)  {
        File file=new File("D:\\1234.txt");
        File[] files = file.listFiles();//将目录下的所有内容以file形式存入数组中
        String[] list = file.list();//将目录下所有的内容放以字符串形式入一个数组中

    }
}

该方法中可以传入一个过滤器参数,来过滤出想要的文件类型

例:使用过滤器筛选出txt文件

import java.io.File;

import java.io.FilenameFilter;


public class demo1 {
    public static void main(String[] args)  {
        File file=new File("D:\\1234.txt");
        file.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
               //dir  父目录    name 文件名
                    File f=new File(dir,name);
                    if (f.isFile()&&f.getName().endsWith(".txt")){
                        return true;
                    }else {
                        return false;
                    }
            }
        });
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值