java的File类

156 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

java中的File类的对象表示的是一个文件或者是一个目录。File的类可以实现文件的创建、删除、重命名等等功能。让我们来一起学习一下它吧。

1.引入:路径

当我们需要对一个文件进行操作就需要得到一个文件的路径(已知路径)。或者我们准备创键一个文件也需要一个路径(未知路径)。无论电脑上是否有这个路径,都是可以传给File对象的。看如下代码

File file = new File("e:\\news1.txt");
File file = new File("e:/news1.txt");
String filePath = "e:"+File.separator+"news1.txt";

这三种都可以引入文件或文件夹路径。因为\是转义字符,所以不能用单独的\来表示路径而是用\。单个只能用/。也可以用Flie方法File.separator。

2.判断文件是否存在、创建文件

    File file = new File("e:\news1.txt");
    if (!file.exists()){
    try {
        file.createNewFile();
        System.out.println("创建成功");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

file.exists()方法是用来判断文件夹是否存在。返回一个boolean值。 file.createNewFile();创建新的文件。但是会有异常,需要用trycatch语句包裹一下。 这行代码的意思就是用if语句来判断文件是否存在。不存在就会执行到file.createNewFile();方法创建这个txt文件创建后会在显示台打印创建成功。创建成功与否都会返回一个boolean值。

3.判断为文件还是文件夹

    File file = new File("e:\news1.txt");
    System.out.println(file.isFile());//true
    System.out.println(file.isDirectory());//false

file.isFile();方法用来判断该文件是否为普通文件,file.isDirectory();用来判断是否为文件夹。结果会返回Boolean类型。

4.删除文件夹

File file = new File("e:\news1.txt");
file.delete();

可以在删除电脑里指定路径下的文件或者文件夹。要是文件夹里有文件,则会删除失败。无论删除成功与否都会返回一个boolean值。

5.返回文件夹下所有文件名词

File file = new File("e:\text");
String[] dir = file.list();
System.out.println(Arrays.toString(dir));

text文件夹下的东西

image.png

打印效果

[111111.xls, 222222.pptx, 333333.bmp, 444444]

file.list();方法会列出指定路径下的所有文件名称。通过调用Arrays.toString();方法把文件名答应到控制台。

6.返回文件夹内所有文件的file对象

File[] dir = file.listFiles();
for (File f : dir) {
    System.out.println("length"+f.length());
    System.out.println("Name"+f.getName());
    System.out.println("绝对路径"+f.getPath());
    System.out.println("相对路径"+f.getAbsolutePath());
    System.out.println("是否为隐藏文件"+f.isHidden());
    Date date = new Date(f.lastModified());
    DateFormat df = new SimpleDateFormat("HH:mm:ss");
    System.out.println("文件最后的修改时间"+df.format(date));
    System.out.println("是否为隐藏文件"+f.isHidden());
}

效果

length:0
Name:444444
绝对路径e:\text\444444
相对路径e:\text\444444
是否为隐藏文件false
文件最后的修改时间21:50:08
是否为隐藏文件false
//...省略

file.listFiles();可以返回file对象。可以用增强for循环调用一些File的方法。文件内得到每个的一些信息。这里使用Date的方法是因为输出的修改时间没有格式。不太好看,就格式化了一下。

7.创建文件夹

File file3 = new File("e:/yrx/tt/yy");
//file3.mkdir();创建文件夹
file3.mkdirs();//创建文件夹和创建没有的父目录

8.重命名和移动文件

File file = new File("e:/yrx/tt/yy");
//重命名
file3.renameTo(new File("e:/yrx/tt/yy1"));
//移动文件
file3.renameTo(new File("e:/yrx/yy1"));

这里的移动文件不会删除原有路径下的文件。而是类似复制粘贴到了其他路径下。