java面向对象之IO篇(2)File类

a 夏天 提交于 2020-02-28 09:38:45

File类

一.入门案例

Java中提供了java.io.File类,用来代表文件或目录。

注意:

1、该类用来进行文件或目录的操作

2、该类本身没有对文件或目录的数据读写功能。

入门案例:

/*
* File类入门
*
*               exists();           判断文件/目录 是否存在
*                                   true:文件/目录 是存在的
*                                   false:文件/目录 是不存在的
* */
public static void main(String[] args) {

    //1、创建File对象,代表 D盘下的测试.txt文件
    File f1 = new File("D:\\测试.txt");
    //2、创建File对象,代表 D盘下的 测试 文件夹
    File f2 = new File("D:\\测试");

    File f3 = new File("D:\\呵呵呵呵呵呵你好么我18K");
    boolean b1 = f1.exists();
    boolean b2 = f2.exists();
    System.out.println(b1);
    System.out.println(b2);
    System.out.println(f3.exists());
}

 

 

格式:

new File(String 路径);

注意:

1、\\ 和 / 效果一模一样的 (建议:使用\\

2文件有扩展名,文件夹没有

 

 

二. 进阶案例

获取项目根下的某个文件:

/*
*   获取当前项目 根下的 你好.txt 文件
* */
public static void main(String[] args) {
    // 绝对路径:带盘符的完整路径
    File f1 = new File("D:\\IDEA56\\day38_1\\你好.txt");
    System.out.println(f1.exists());

    //相对路径:不带盘符的路径
    //                  获取当前项目目录下的  你好.txt
    File f2 = new File("你好.txt");
    System.out.println(f2.exists());


    //每个项目相对路径都是 当前项目的根
    //当前项目下 有一个src目录,src目录下有一个Demo1.java文件,如何获取这个Java文件
    //当前项目路径:   D:\\day38_1
    //绝对
    File fx1 = new File("D:\\day38_1\\src\\Demo1.java");
    //相对
    File fx2 = new File("src\\Demo1.java");

}

 

 

路径分为:

绝对路径:带盘符的完整路径

相对路径:不带盘符的路径(相对路径默认从IDEA项目根目录开始)

 

如果尝试获取 当前项目的下的某个文件或文件夹,建议 相对路径(更简单)

 

 

三. 常见方法

1.判断方法:

方法名

描述

boolean exists()

判断文件或目录是否存在

boolean isFile()

判断对象是否是文件

boolean isDirectory()

判断对象是否是目录

boolean isHidden()

判断对象是否为隐藏文件或目录

举例使用:

/*判断方法
        方法名                            描述
        boolean exists()               判断文件或目录是否存在
                                        true:存在
                                        false:不存在(①文件/目录真不存在;②路径写错了)
        boolean isFile()               判断对象是否是文件
                                        true: 是一个文件

        boolean isDirectory()          判断对象是否是目录
                                        true:是一个目录

        boolean isHidden()             判断对象是否为隐藏文件或隐藏目录
                                        true:是隐藏的
* */
public static void main(String[] args) {
    File f1 = new File("D:\\测试.txt");//文件
    File f2 = new File("D:\\测试");//目录
    //1、exists
    System.out.println(f1.exists());
    //2、isFile()
    System.out.println(f1.isFile());//true
    System.out.println(f2.isFile());//false
    //3、isDirectory
    System.out.println(f1.isDirectory());//false
    System.out.println(f2.isDirectory());//true
    //4、isHidden()
    System.out.println(f1.isHidden());//false
}

 

 

 

 

2.属性读取方法

方法名

描述

String getName()

获得文件或目录的名称

long length()

获取文件字节数。仅判断文件,不能判断目录

如果对象是目录那么返回结果不确定

String getAbsolutePath()

获取文件或目录绝对路径

String getPath()

获取文件或目录路径

long lastModified()

获取文件最后一次修改时间(毫秒值)

static File[] listRoots()

获取操作系统所有盘符

 

举例使用:

/*
*   方法名                                描述
    String getName()                   获得文件或目录的名称
                                        获取目录名 或者  获取文件名.扩展名

    long length()                      获取文件字节数。仅判断文件,不能判断目录
                                        如果对象是目录那么返回结果不确定
    String getAbsolutePath()           获取文件或目录绝对路径(带盘符路径)

    String getPath()                   获取文件或目录路径
    long lastModified()                    获取文件最后一次修改时间(毫秒值)
    static File[] listRoots()          获取操作系统所有盘符
*
* */
public static void main(String[] args) {
    //创建File对象,获取文件
    File f1 = new File("D:\\测试\\1\\你好.txt");
    //1、getName()
    System.out.println(f1.getName());
    //2、length()
    System.out.println(f1.length());
    //3、getAbsolutePath()
    System.out.println(f1.getAbsolutePath());
    //4、getPath()
    System.out.println(f1.getPath());
    //5、lastModified()
    long x = f1.lastModified();
    Date date = new Date();
    date.setTime(x);
    System.out.println(date.toLocaleString());
    //6、listRoots()
    File[] farr = File.listRoots();
    System.out.println(Arrays.toString(farr));
}

 

 

 

 

3.操作方法

方法名

描述

boolean createNewFile()

当文件不存在时创建空文件。

创建成功返回true,否则返回false

boolean mkdir()

当目录不存在时创建空目录。

创建成功返回true,否则返回false

注:无法重复创建 或 一次创建多个目录,所以被mkdirs替代

boolean mkdirs()

当目录链不存在时创建空目录链。

创建成功1个或以上目录返回true,否则返回false

boolean renameTo(File file)

修改文件、目录路径。成功返回true,否则返回false

相当于:剪切/重命名

注意:

1、若路径跨盘符不能保证成功;

2、目录即使非空,也可以顺利剪切/重命名 

3、路径目录必须存在(例如:把文件剪切到A目录内,A目录必须存在)

4、剪切/重命名 不能在目录内重名

boolean delete()

删除文件或目录。无法删除非空目录。

删除成功返回true,否则返回false

 

举例使用:


public static void main(String[] args) throws IOException {
    File f1 = new File("测试01.txt");
    //1、创建文件  createNewFile
    boolean b1 = f1.createNewFile();
    System.out.println(b1);
    //2、创建目录:mkdir()   无法重复创建,无法创建多个文件夹
    File f2 = new File("D:\\测试888");
    boolean b2 = f2.mkdir();
    System.out.println(b2);
    //3、创建目录:mkdirs()   无法重复创建
    File f3 = new File("D:\\测试888\\1\\2\\3\\4");
    boolean b3 = f3.mkdirs();
    System.out.println(b3);
    //4、剪切/重命名renameTo
    File f4 = new File("测试01.txt");
    //剪切到D盘根下
    boolean b4 = f4.renameTo(new File("D:\\测试01.txt"));
    System.out.println(b4);
    //5、删除文件delete
    File f5 = new File("你好.txt");
    boolean b5 = f5.delete();
    System.out.println(b5);
    //6、删除目录delete  (目录里必须是空的)
    File f6 = new File("D:\\测试");
    boolean b6 = f6.delete();
    System.out.println(b6);
}

 

 

 

 

  4.获取子文件和子目录

方法名

描述

String[] list()

获取当前目录下所有子文件和子目录名称。

File[] listFiles()

获取当前目录下所有子文件和子目录。

 

 

举例使用:

/*
* 方法名                          描述
  String[] list()              获取当前目录下所有子文件和子目录名称。 (不常用)
  File[] listFiles()           获取当前目录下所有子文件和子目录。 【最频繁】
    temp.delete();
* */
public static void main(String[] args) {
    //1、list()
    File f1 = new File("D:\\");
    String[] list1 = f1.list();
    System.out.println(Arrays.toString(list1));
    //2、listFiles()
    File[] flist = f1.listFiles();
    for (File temp : flist) {
        System.out.println(temp.getName());
    }
}

 

 

 

 

 

总结:

File类:

判断方法

方法名

描述

boolean exists()

判断文件或目录是否存在

true:存在

false:不存在

文件、目录真不存在

路径写错)

boolean isFile()

判断对象是否是文件

True:是文件

False:不是文件,就是目录

boolean isDirectory()

判断对象是否是目录

boolean isHidden()

判断对象是否为隐藏文件或目录

 

属性读取方法

方法名

描述

String getName()

获得文件或目录的名称

文件名:文件名.扩展名

long length()

获取文件字节数。仅判断文件,不能判断目录

如果对象是目录那么返回结果不确定

String getAbsolutePath()

获取文件或目录绝对路径

带盘符路径

String getPath()

获取文件或目录路径

long lastModified()

获取文件最后一次修改时间(毫秒值)

new Date().setTime(x);

static File[] listRoots()

获取操作系统所有盘符

 

操作方法

方法名

描述

boolean createNewFile()

当文件不存在时创建空文件。

创建成功返回true,否则返回false

boolean mkdir()

当目录不存在时创建空目录。

创建成功返回true,否则返回false

注:无法重复创建 或 一次创建多个目录,所以被mkdirs替代

boolean mkdirs()

当目录链不存在时创建空目录链。

创建成功1个或以上目录返回true,否则返回false

boolean renameTo(File file)

修改文件、目录路径。成功返回true,否则返回false

相当于:剪切/重命名

注意:

1、若路径跨盘符不能保证成功;

2、目录即使非空,也可以顺利剪切/重命名 

3、路径目录必须存在(例如:把文件剪切到A目录内,A目录必须存在)

4、剪切/重命名 不能在目录内重名

支持:

剪切并改名

剪切不改名

原地改名

boolean delete()

删除文件或目录。无法删除非空目录。

删除成功返回true,否则返回false

 

  获取子文件和子目录

方法名

描述

String[] list()

获取当前目录下所有子文件和子目录名称。

File[] listFiles()

获取当前目录下所有子文件和子目录。

 

 

 

 

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

​​​​​​​

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!