黑马程序员-Java笔记:File类

本文详细介绍了Java中的File类,包括如何使用File类创建、删除文件和目录,判断文件属性,获取文件信息等基本操作。

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

File介绍

引用毕老师视频里关于File类的介绍
将文件或文件夹封装成对象的类,方便对文件文件夹的属性进行操作。File类的出现拟补流对象的不足。流只能操作数据,而想要操作文件或文件夹只能用File类。

创建一个File对象

File f1 = new File("a.txt");

将a.txt文件封装成对象,文件可以是已经存在或未创建的,可以是相对路径或绝对路径。

File f2 = new File("C:\\ABC","B.txt");
//public File(String parent, String child)

用parent表示路径,child表示文件或目录

系统分隔符:File类的一个静态成员,separatorChar,表示系统默认名称分隔符,在UNIX系统上,此字段的值为 ‘/’;在 Microsoft Windows 系统上,它为 ‘\’

创建文件

boolean createNewFile();
在指定位置创建文件,如果指定的文件不存在,则创建并返回true,否则返回false

File f1 = new File("a.txt");
f1.createNewFile()

创建文件夹

boolean mkdir() ;
在指定的位置创建文件夹

File f1 = new File("abc");
f1.mkdir();

boolean mkdirs();
创建多级目录

File f1 = new File("abc\\efg");
f1.mkdirs();

删除文件或目录

public boolean delete();

删除文件或目录,如果删除的是一个目录,目录必须为空才能删除。如果删除成功返回true,反则返回false

File f1 = new File("a.txt");
f1.delete();

public void deleteOnExit();

在程序退出时删除指定文件或目录

判断文件

public boolean canExecute();

判断一个文件时候能执行,如果能执行返回true,否则为false,对一个文件或目录是否文件或者目录时,必须要先判断该文件是否存在。

File f1 = new File("a.txt");
System.out.println(dir.canExecute()); 

public boolean exists();

判断一个文件或目录是否存在,当表示的文件或目录存在时,返回 true;否则返回 false

boolean isFile();

File f = nwe File("file.txt");
System.out.println("file:"+f.isFile());

boolean isDirectory();

 File f = nwe File("file.txt");
 System.out.println("dir:"+f.isDirectory());

boolean isHidden();
测试此抽象路径名指定的文件是否是一个隐藏文件,如果是返回true

获取File对象信息

String getName();
返回文件或目录名
String getPath();
返回文件对象所封装的路径名字字符串
String getAbsolutePath();
返回文件的绝对路径

    File dir = new File("I:\\Demo\\Test\\src\\com\\IO\\javalist.txt");
    System.out.println(dir.getPath());
    System.out.println(dir.getAbsolutePath());

输出:
I:\Demo\Test\src\com\IO\javalist.txt
I:\Demo\Test\src\com\IO\javalist.txt

文件列表

static File listRoots();
获取机器上所有根目录

File[] files = FileRoots();
for(File f:files)
{
    System.out.println(f);
}

public String[] list();

返回字符串数组,内容是文件对象指定目录下所有文件和文件夹的名称。如果文件对象封装的是文件,则返回null,该目录还必须存在。

 File file = new File("c:\\");
 String[]names = f.list();
    for(File name: names)
    {
        System.out.println(name);
    }

public String[] list(FilenameFilter fit)

FilenameFiter 是一个接口,实现此接口的类的实例可用过滤文件名,过滤掉不需要的文件。该类只有一个方法,boolean accep(File Dir,String name);通过accep方法返回值来决定要过滤掉的是那些文件。Dir参数就是要过滤文件的目录,name参数是目录下要过滤的文件名称。

File dir = new File("d:\\div39");
String[] arr = dir.list(new FilenameFilter()
{
    public boolean accept(File dir,String name)
    {
        return name.endsWith(".html");
    }
});
for(String name:arr)
{
    System.out.println(name);
}

遍历目录中所有文件和目录

使用递归,查找出指定目录下所有文件和目录,如果遇到是一个目录,就继续调用本方法,遇到文件就打印出这个文件。

public static void showDir(File dir)
{
    File[]files = dir.listFiles();
    for(int x =0;x<files.length;x++)
    {
        if(files[x].isDirectory())
            showDir(files[x]);
        System.out.println(files[x]);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值