File类

File类

概述以及构造方法
  • file更应该叫做路径(文件或者文件夹路径);
  • 路径又分为绝对路径和相对路径,从盘符开始,相对路径相对于某个位置,在eclipes下是指当前项目下。
  • 构造方法:
    在这里插入图片描述
//构造方法一
  File  f = new File("C:\\学生信息\\num.txt");
  File  ff = new File("C:/学生信息/num.txt");
  System.out.println(f.exists());
  System.out.println(ff.exists());
  //构造方法二
  String parent = "C:/学生信息";
  String child = "num.txt";
  File f1 = new File(parent,child);
  System.out.println(f1.exists());
  //构造方法三(比构造方法二功能更加强大,File操作比String能够更多)
  File parent2 = new File("C:/学生信息");
  String child2 = "num.txt";
  File file2 = new File(parent2,child2);
  System.out.println(file2.exists());
File类的功能

(1)创建

  • 创建文件
File f = new File("yyy.txt");
//路径有可能写错,可能出现异常
System.out.println(f.createNewFile());
//(如果没有该文件就创建返回true,如果有该文件则不需要创建返回false)
File f2 = new File("ccc");//可以不写文件类型,但最好要写文件类型
System.out.println(f2.createNewFile());
  • 创建文件夹
File f3 = new File("学生");
System.out.println(f3.mkdir());

File f4 = new File("学校.txt");//文件夹可以有后缀,但习惯上一般不写后缀
System.out.println(f4.mkdir());

File f5 = new File("学校/学生");//创建多级目录
System.out.println(f5.mkdirs());

(2)重命名
renameto方法如果路径相同就是改名字
如果路径不同就是改名并剪切

File f1 = new File("yyy.txt");
File f2 = new File("bbb.txt");
System.out.println(f1.renameTo(f2));

File f3 = new File("bbb.txt");
File f4 = new File("C:/学生信息/mmm.txt");
System.out.println(f3.renameTo(f4));

(3)删除
public Boolean delete()

  • 删除时不经过回收站
  • 要删除一个文件夹,文件夹中不能包含文件和文件夹(即文件夹为空),平时我们做的删除文件夹的操作,在计算机内部实际上是遍历文件夹下的文件,依次删除之后,最后删除文件夹。

(4)判断【返回值都是布尔类型】

  • 是否为文件夹 isDirectory()
  • 是否为文件 isFile()
  • 是否可以写 canWrite()
  • 是否可读 canRead()

【windows系统下认为一切文件都可以读,因此在windows系统下设置是否可读的属性不能起作用,无论设置什么,都是输出true,但是Linux系统下设置则可以得到目标结果】

  • 是否存在 exists()
  • 是否隐藏 isHidden()

(5)获取

  • 获取路径:
    getPath()是根据构造方法中传进去的地址获取地址的方法,如果传进去的是相对路径,获得的就是相对路径,如果传进去的是绝对路径,获得的就是绝对路径。
    (6)输出指定目录下指定后缀的文件名
  • 方式一:获得指定目录下所有文件,并找出符合条件的文件
File file = new File("C://");
String[] strings = file.list(); // 获取c盘下所有文件名
for (String  s:strings) {
    if (s.endsWith(".png")) {
        System.out.println(s);
    }
}
  • 方式二:获取指定目录下的文件或者文件夹,找到以指定后缀结束的指定文件后输出
File file = new File("C://");
File[] files = file.listFiles(); //c盘下指定的文件或者文件夹
for (File f :files) {
    if (f.isFile() && f.getName().endsWith(".png")) {
        System.out.println(f);
    }
}

(7)文件名称过滤器

符合要求的文件名存入新的数组,直接获取数组中每个元素即为符合要求的文件名

File file = new File("C://");
String[] strings = file.list(new FilenameFilter() {
    //此时dir即为C://,name即为文件名
    @Override
    public boolean accept(File dir, String name) {
        File file1 = new File(dir,name);
        return file1.isFile() && file1.getName().endsWith(".png");
    }
});
for (String s : strings) {
    System.out.println(s);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值