Java File类常见用法总结

Java中的File类是“文件和目录路径名的抽象表示形式”,其中提供了很多方法以实现对文件和文件夹的操作。下面总结了File类一些常见的用法,希望对大家有帮助。

文件(夹)的创建与删除

boolean createNewFile( )——创建新的文件
boolean mkdir( )——创建单级文件夹
boolean mkdirs( )——创建多级文件夹
如果需要创建的文件位于某个文件夹内,则需要先创建文件夹,再创建文件。另外,不能创建已经存在的文件和文件夹。

boolean delete()——可以删除文件和文件夹,但只能删除空文件夹,所以删除文件夹前,要先删除文件夹内的文件。该方法将直接删除文件,删除的文件不会在回收站中。

代码如下:

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

public class FileTest {
    public static void main(String[] args) throws Exception {
        File folder = new File("E:\\fileTest\\folder");
        File file1 = new File(folder,"file1.txt");

//     创建文件和文件夹
        try {
        // 有时候也将这些语句放入输出语句中,以查看操作是否成功
        // 如:System.out.println(folder.mkdirs());
            folder.mkdirs();  //先创建文件夹
            file1.createNewFile();  // 再创建文件    
        } catch (IOException e) {
            System.out.println("创建文件时出错!");
        }   

//      删除文件和文件夹
        file1.delete(); // 先删除文件夹内的文件
        folder.delete(); // 再删除文件夹
    }
}

另外,结合递归,delete方法也可用于多级文件夹的删除。如下:

// 为了阅读直观,以下代码被封装在方法中

private void deleteFolders(File srcFile) {
    File[] files = srcFile.listFiles();

    // 判断源文件夹下的File对象是文件还是文件夹
    for(File file : files) {
        // 是文件夹,继续调用方法本身,且该文件夹的File对象是srcFile
        if(file.isDirectory()) {
            deleteFolders(file);
        } else {
            // 是文件,直接删除
            file.delete();
        }

        // 以上步骤删除了所有文件,接着继续删除文件夹
        file.delete();
    }

    // 最后删除最外层的文件夹
    srcFile.delete();
}   

文件(夹)属性查看

String getAbsolutePath( )——获取绝对路径
String getPath( )——获取相对路径
String getName( )——获取文件名
long length( )——获取文件大小
long lastModified( )——获取上一次修改时间,以判断文件是否被修改
boolean isDirectory( )——判读File对象是否为文件夹
boolean isFile( )——判断File对象是否为文件
boolean canRead( )——判断File对象表示的文件是否可读
boolean canWrite( )——判断File对象表示的文件是否可写
boolean isHidden( )——判断文件是否隐藏
boolean exits( )——判断文件(夹)是否存在

这些方法很少单独使用,一般都会其他方法一起使用。此外,File类还提供了文件重命名的方法:
boolean renameTo(File dest)——重命名文件至目标文件夹下。
值得注意的是:dest表示的路径与原路径不同,将剪切原文件并重命名(其实,方法名已经很形象地说了这一点)。另外,如果目标文件夹下已存在同名文件,将不会重命名。具体如下:

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

public class FileTest2 {
    public static void main(String[] args) {
        String oldName = "theOld.txt"; // 文件的原名
        String newName = "theNew.txt";// 文件的新名

        //创建原文件夹和原文件的File对象
        File srcFolder = new File("E:\\src");
        File srcFile1 = new File(srcFolder,"srcFile1.txt");
        File srcFile2 = new File(srcFolder,"srcFile2.txt");

        // 创建新文夹的File对象
        File newFolder = new File("E:\\dest");

        //  创建原文件夹、原文件、新文件夹 
        try {
            srcFolder.mkdir();
            srcFile1.createNewFile();
            srcFile2.createNewFile();
            newFolder.mkdir();
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 重命名的目标文件夹和原文件夹相同---重命名
        srcFile1.renameTo(new File(srcFolder,newName));

        // 重命名的目标文件夹和原文件夹不同----剪切+重命名 
        srcFile2.renameTo(new File(newFolder,newName));
    }

}

文件(夹)列表

public String[] list( )——获取某个目录下文件(夹)名的数组
public File[] listFiles( )——获取某个目录下文件(夹)名的File对象数组
public File[] listFiles(FileFilter filter) ——获取某个目录下满足一定条件的文件(夹)名对象数组,可用与查找特定的文件,如获取文件夹下所有的txt文件,具体如下:

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

public class FileTest3 {
    public static void main(String[] args) {
        File file = new File("E:\\test");

        File[] txtFiles = file.listFiles(new FileFilter(){
            // 使用匿名类创建FileFilter的实现类对象 
            //并重写FileFilter接口中的accept方法
            public boolean accept(File pathname) {
                // 这里的判断条件为 名字以“.txt”结尾
                return pathname.getName().endsWith(".txt");
            }
        });

        // 遍历数组,输出所有txt文件 的文件名
        for(File f : txtFiles){
            System.out.println(f.getName());
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值