IO流--File类的使用

一. 概述:

1)File类用来将文件或者文件夹封装成对象
2)方便对文件与文件夹的属性信息进行操作
3)File不能访问文件内容本身,如果需要访问文件内容本身,则需要使用输入/输出流,File对象可以作为参数传递给流的构造函数

二. 构造函数:

这里写图片描述

三. 常用方法:

//创建:
boolean createNewFile() 在指定位置创建一个空文件,成功返回true,如果已存在就不创建,并返回false。
boolean mkdir()  在指定位置创建一个单级文件夹(一级目录)。
boolean mkdirs()  在指定位置创建一个多级文件夹。
boolean renameTo(File dest)  如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切并重命名

//删除:
boolean delete()  删除文件或者一个空文件夹,不能删除非空文件夹
void deleteOnExit()   jvm退出时删除文件或者文件夹,用于删除临时文件

//判断:
boolean exists()  文件或文件夹是否存在。
boolean isFile()  是否是一个文件,如果不存在,则始终为false。
boolean isDirectory()  是否是一个目录,如果不存在,则始终为false。
boolean isAbsolute()  测试此抽象路径名是否为绝对路径名。

//获取:
String getName()  获取文件或文件夹的名称,不包含上级路径。
String getParent()  返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
String getAbsolutePath()    获取文件的绝对路径,与文件是否存在没关系
long length()  获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
long lastModified()获取最后一次被修改的时间。

//文件夹相关:
static File[] listRoots() 列出所有的根目录(在Window下就是所有系统的盘符)
String[] list()  返回目录下的文件或者目录名,包含隐藏文件
File[] listFiles()  返回目录下的文件或者目录对象(File类实例),包含隐藏文件
File[] list(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。
File[] listFiles(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。

eg1:使用过滤器获取e盘根目录下所有的.java文件

import java.io.*;
public class FileDemo2 {
    public static void main(String[] args) {
        File dir = new File("e://");
        String[] names = dir.list(new FilenameFilter()  //过滤器(通过匿名内部类实现)
                {
                    public boolean accept(File dir, String filename)  //重写FileFilter接口的accept方法,定义过滤标准
                    {
                        return filename.endsWith(".java");
                    }
                });
        for(String name:names)
        {
            System.out.println(name);
        }
    }   
}

eg2:递归遍历某个文件夹下面的所有文件

import java.io.*;
public class FileTest {

    public static void main(String[] args) {
        File dir = new File("E://java");
        traverse(dir);
    }
    public static void  traverse(File dir)
    {
        File[] dirs = dir.listFiles(); //获取当前目录下的文件或文件夹对象
        for(File f:dirs)
        {
            if(f.isDirectory())  //若为文件夹,需继续遍历该文件夹下的文件
            {
                 traverse(f);
            }
            System.out.println(f);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值