Java学习之File文件类

发布于:2023-01-21 ⋅ 阅读:(176) ⋅ 点赞:(0)

最近新学了File文件类,和大家分享一下。

File文件类

文件和文件夹(文件路径)的抽象表示。是专门来处理磁盘上的文件夹或者文件的,改变手动创建为Java封装好的类创建文件夹和文件。

关于绝对路径和相对路径:

相对路径:

  相对于某个参照物

  ./表示当前工作目录,../表示上一级目录,../../上两级

绝对路径:

  磁盘的根目录一级一级往下找

  C:\ccc\dd\1.png

File类的构造方法:

File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的对象

  File file = new File("c:/aaa/1.txt");

File(String parent , String child)
从父路径名字符串和子路径名字符串创建新的File实例。

File file1 = new File("c:/aaa/", "1.txt");

File类下面的方法:

boolean creatNewFile(); 创建一个文件 返回值是一个布尔类型的数据
1、如果文件路径不存在会报异常
2、如果文件名字已经存在,返回false
3、磁盘坏了,创建不了
4、磁盘属性为只读

File file = new File("c:/aaa/1.txt");//先声明一个File对象
file.creatNewFile();//创建一个文件,返回true

boolean mkdir();创建文件夹(单级路径) mkdirs();创建多级路径

File file1 = new File("c:/aaa/bbb");
System.out.println(file1.mkdir());//单级路径

File file2 = new File("c:/aaa/ccc/ddd");
System.out.println(file2.mkdirs());//多级路径

删除文件或者文件夹
boolean delete(); 只能删空的

File file = new File("c:/aaa/1.txt");
System.out.println(file.delete());//删除文件
File file1 = new File("c:/aaa/ccc");
System.out.println(file1.delete());//删除文件夹

void deleteOnExit(); 不会立即删除,程序退出才会删除

File file3 = new File("c:/aaa/ccc/ddd");
file3.deleteOnExit();
//保证程序不退出
new Scanner(System.in).nextInt();

File对象的判断方法,比较常用的

boolean isFile(); 是否是文件

 File file = new File("c:/aaa");
 System.out.println(file.isFile());//false

boolean isDirectory(); 是否是文件夹

File file = new File("c:/aaa");
System.out.println(file.isDirectory());//true

boolean isHidden(); 是否是隐藏文件

File file2 = new File("c:/aaa/2.txt");//此处文件预先隐藏了
System.out.println(file2.isHidden());//true

boolean isAbsolute();是否是绝对路径

File file2 = new File("c:/aaa/2.txt");
System.out.println(file.isAbsolute());//true

boolean exist(); 判断文件或者文件夹是否存在【重要】

if (!file1.exists()) {
      	file1.createNewFile();
}

返回值是String类型的数据

String getName();获取文件或者文件夹的名字
String getPath();获取当前文件的路径
String getParent();获取父级文件夹的路径

import java.io.File;

public class Demo5 {
    public static void main(String[] args) {
        File file = new File("c:\\aaa\\2.gif");
        System.out.println(file.getName());//2.gif
        System.out.println(file.getParent());//c:\aaa
        System.out.println(file.getPath());//c:\aaa\2.gif
        System.out.println(file);
    }
}

返回值是long类型数据的

long length();返回值是文件占用的字节数
long lastModified();获取当前文件最后一次修改的时间,(毫秒)

import java.io.File;

public class Demo6 {
    public static void main(String[] args) {
        File file = new File("c:/aaa/8.txt");
        System.out.println(file.length());//48

        //1659687558179  
        //从1970 1月1日 0时 0分 0 秒  ~ 2022 8  5  16:19
        //的毫秒数
        System.out.println(file.lastModified());
        
    }
}

返回值是数组的方法

File[ ] listFiles(); 获得同一路径下的所有文件
String[] list();获取当前文件夹下面的所有文件的名字

import java.io.File;

public class Demo7 {
    public static void main(String[] args) {
        File file = new File("c:/");
        File[] files = file.listFiles();
        for (File file1 : files) {
            //列出来的是对象 File
            System.out.println(file1);
        }
        System.out.println("=======");
        String[] list = file.list();
        for (String s : list) {
            //文件的名字
            System.out.println(s);
        }
    }
}

至此结束


网站公告

今日签到

点亮在社区的每一天
去签到