关于File类概念及方法的一些介绍

关于File类概念及方法的一些介绍java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。Java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作。File类的方法可以实现:1.创建一个文件/文件夹2.删除文件/文件夹3.获取文件/文件夹4.判断文件/文件夹是否存在5.对文件夹进行遍历6.获取文件的大小File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法重点:File:文件;Directory:文件夹/目录

大家好,又见面了,我是你们的朋友全栈君。

java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
Java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作。

File类的方法可以实现:

  • 1.创建一个文件/文件夹
  • 2.删除文件/文件夹
  • 3.获取文件/文件夹
  • 4.判断文件/文件夹是否存在
  • 5.对文件夹进行遍历
  • 6.获取文件的大小

File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法
重点:File:文件;Directory:文件夹/目录;Path:路径

1 静态成员变量

  • static String pathSeparator与系统有关的分隔符,为了方便,被表示成一个字符串

  • static char pathSeparatorChar 与系统有关的路径分隔符

  • static String separator与系统有关的默认分隔符,为了方便,表示成一个字符串

  • static char separatorChar 与系统有关的默认名称分隔符

代码示例如下:

		String pathSeparator = File.pathSeparator;
        System.out.println(pathSeparator);//;

        char pathSeparatorChar = File.pathSeparatorChar;
        System.out.println(pathSeparatorChar);//;

        String separator = File.separator;
        System.out.println(separator);//\

        char separatorChar = File.separatorChar;
        System.out.println(separatorChar);//\

2 相对路径与绝对路径

路径:

  • 绝对路径:是一个完整的路径,以盘符(C:,D:,E:)开始的路径
    如:C:\Users\Lee\Java\abc.txt
  • 相对路径:是一个简化的路径,相对指的是对于当前项目的根目录*(C:\Users\Lee\Java)*
    如果使用当前项目的根目录,路径可以简化书写:
    C:\Users\Lee\Java\abc.txt → abc.txt(可以省略项目的根目录)

注意:
1.路径不区分大小写
2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠

3 构造方法

  • public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
    参数:String pathname (字符串的路径名称)

    路径可以是文件结尾,也可以是以文件夹结尾,可以是相对路径也可以是绝对路径,路径可以存在也可以不存在
    创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况

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

    参数:把路径分成两部分
    String parents:父路径
    String Children:子路径

    好处:父路径和子路径可以单独书写,使用起来非常灵活,父路径和子路径都可以变化

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

    参数:把路径分成两部分
    String parents:父路径
    String Children:子路径

    好处:
    父路径和子路径可以单独书写,使用起来非常灵活,父路径和子路径都可以变化
    父路径是File类型,可以使用File的方法对路径进行一些操作,再使用路径创建对象

代码如下:

public class File02 { 
   
    public static void main(String[] args) { 
   
    /* public File(String pathname):通过将给定的**路径名字符串**转换为抽象路径名来创建新的 File实例。 */
        File f1=new File("D:\\Java\\a.txt");
        System.out.println(f1);//D:\Java\a.txt(重写了toString方法)

        File f2=new File("D:\\Java");
        System.out.println(f1);//D:\Java
     /* public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。 */
        File f3=new File("D:\\","a.txt");
        System.out.println(f3);//D:\a.txt

     /* public File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。 */
        File f4=new File(f2,"c.txt");
        System.out.println(f4);//D:\Java\c.txt
    }
}

4 常用方法

4.1 获取功能的方法
  • public String getAbsolutePath() :返回此File的绝对路径名字符串。

  • public String getPath() :将此File转换为路径名字符串。

  • public String getName() :返回由此File表示的文件或目录的名称。

  • public long length() :返回由此File表示的文件的长度。

API中说明:length(),表示文件的长度。但是File对象表示目录,则返回值未指定。

代码示例如下:

import java.io.File;
public class File03 { 

public static void main(String[] args) { 

method01();
method02();
method03();
method04();
}
//public String getAbsolutePath():返回此File的绝对路径名字符串。
private static void method01() { 

File f1=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me");
String absolutePath1 = f1.getAbsolutePath();
System.out.println(absolutePath1);//D:\CODE\JAVA\03-09-code\src\me
File f2=new File("a.txt");
String absolutePath2 = f2.getAbsolutePath();
System.out.println(absolutePath2);//D:\CODE\JAVA\a.txt
}
//public String getPath():将此File转换为路径名字符串。
private static void method02() { 

File f1=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me");
String path = f1.getPath();
System.out.println(path);
File f2=new File("D:\\CODE\\JAVA");
String path1 = f2.getPath();
System.out.println(path1);//D:\CODE\JAVA
}
//public String getName():返回由此File表示的文件或目录的名称。(获取的就是构造方法传递路径的结尾部分)
private static void method03(){ 

File f1=new File("C:\\Users\\lee\\Desktop\\lunwen");
String name = f1.getName();
System.out.println(name);//lunwen
File f2=new File("C:\\Users");
String name1 = f2.getName();
System.out.println(name1);//Users
}
//public long length():返回由此File表示的文件的长度。(获取构造方法指定的文件的大小,以字节为单位)
/* 注意:文件夹是没有大小概念的,不能获取文件夹的大小 如果构造方法中给出的路径不存在,那么length方法返回0 */
private static void method04(){ 

File f1=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me");
long length = f1.length();
System.out.println(length);//0
File f2=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me\\lwj\\s01\\Abstract.java");
long length2 = f2.length();
System.out.println(length2);//1270
}
}
4.2 判断功能的方法
  • public boolean exists() :此File表示的文件或目录是否实际存在。

用于判断构造方法中的路径是否存在,返回true或者false

  • public boolean isDirectory() :此File表示的是否为目录。

用于判断构造方法中给定的路径是否以文件夹结尾

  • public boolean isFile() :此File表示的是否为文件。

用于判断构造方法中给定的路径是否以文件结尾

注意:电脑硬盘中只有文件/文件夹,两个方法互斥,使用时路径必须存在,否则都返回false

代码示意:

import java.io.File;
public class File04 { 

public static void main(String[] args) { 

method01();
method02();
}
/* public boolean exists():此File表示的文件或目录是否实际存在。 用于判断构造方法中的路径是否存在,返回true或者false */
private static void method01() { 

File f1=new File("D:\\CODE\\DelaunayTIN(4)");
boolean exists = f1.exists();
System.out.println(exists);//true
File f2=new File("D:\\CODE\\DelaunayTIN");
boolean exists1 = f2.exists();
System.out.println(exists1);//false、
File f3=new File("File04.java");
boolean exists2 = f3.exists();
System.out.println(exists2);//true
}
/* public boolean isDirectory():此File表示的是否为目录。 用于判断构造方法中给定的路径是否以文件夹结尾 public boolean isFile():此File表示的是否为文件。 用于判断构造方法中给定的路径是否以文件结尾 注意:电脑硬盘中只有文件/文件夹,两个方法互斥,使用时路径必须存在,否则都返回false */
private static void method02(){ 

File f1=new File("D:\\文档\\04.02\\data");
boolean directory = f1.isDirectory();
System.out.println(directory);//true
System.out.println(f1.isFile());//false
File f2=new File("D:\\文档\\04.02\\data\\04.dbf");
System.out.println(f2.isFile());//true
System.out.println(f2.isDirectory());//false
}
}
4.3 创建删除功能的方法
  • public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

    注意:
    1.此方法只能创建文件,不能创建文件夹
    2.创建文件的路径必须存在,否则抛出异常

  • public boolean delete() :删除由此File表示的文件或目录。

    此方法可以删除构造方法路径中给出的文件/文件夹
    注意:delete方法是直接在硬盘删除文件/文件夹,不走回收站,删除要谨慎

  • public boolean mkdir() :创建由此File表示的目录。

    创建单级空文件夹

  • public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。

    既可创建单级空文件夹也可创建多级文件夹

代码示例:

import java.io.File;
import java.io.IOException;
public class File05 { 

public static void main(String[] args) throws IOException { 

//method01();
method02();
method03();
}
/* public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。 */
private static void method01() throws IOException { 

File f1=new File("D:\\文档\\04.02\\a.txt");
boolean newFile = f1.createNewFile();
System.out.println(newFile);//true
File f2=new File("rusell\\b.txt");
System.out.println(f2.createNewFile());//抛出异常
}
/* public boolean mkdir():创建由此File表示的目录。(创建单级空文件夹) public boolean mkdirs():创建由此File表示的目录,包括任何必需但不存在的父目录。(即可创建单级空文件夹也可创建多级文件夹) 返回值: 文件夹不存在,创建文件夹,返回true 文件夹存在,不会创建,返回false;构造方法中给出的路径不存在返回false 注意:此方法只能创建文件夹,不能创建文件 */
private static void method02(){ 

//单级空文件夹
File f1=new File("D:\\CODE\\1");
System.out.println(f1.mkdir());//true
//多级文件夹
File f2=new File("D:\\CODE\\a\\b\\c");
System.out.println(f2.mkdirs());//true
File f3=new File("C:\\CODE\\a\\b\\c");
System.out.println(f3.mkdir());//false
}
/* public boolean delete():删除由此File表示的文件或目录。 返回值: 文件/文件夹删除成功,返回true 文件夹中有内容,不会删除返回false,构造方法中路径不存在返回false */
private static void method03(){ 

//删除文件夹
File f1=new File("D:\\LDSGameMaster");
System.out.println(f1.delete());//false
File f2=new File("D:\\CODE\\1");
System.out.println(f2.delete());//true
//删除文件
File f3=new File("D:\\CODE\\a\\point.txt");
System.out.println(f3.delete());//true
}
}

5 目录的遍历

  • public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。

  • public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。

代码如下:

import java.io.File;
public class File06 { 

public static void main(String[] args) { 

method01();
}
private static void method01() { 

File f1=new File("D:\\CODE");
String[] list1 = f1.list();
//遍历数组list1
for (String s : list1) { 

System.out.println(s);
}
// System.out.println(list1);
File[] files = f1.listFiles();
for (File file : files) { 

System.out.println(file);
}
//System.out.println(files);
}
}

运行结果:
list:
在这里插入图片描述
listFiles:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134294.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 安卓编程用什么软件_手机上能安装PLC编程软件吗?为什么?[通俗易懂]

    安卓编程用什么软件_手机上能安装PLC编程软件吗?为什么?[通俗易懂]时常会有初学者来问,手机是否可以安装PLC编程软件?在这里明确的告诉大家,手机不可以安装PLC编程软件。手机不支持安装PLC编程软件,因为PLC编程软件是你所用的品牌厂家开发出来的,如三菱PLC、西门子PLC、欧姆龙PLC等,厂家开发出软件并上线,供我们下载安装,我们才有的用,目前没有任何厂家有开发手机版的PLC编程软件。其实想用手机版的PLC编程软件,就目前来看,非常的不现实,存在一些问题,如安…

  • pycharm2019激活码 贴吧破解方法

    pycharm2019激活码 贴吧破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • checkbox选中和不选中 jqu_jquery checkbox 选中不选中

    checkbox选中和不选中 jqu_jquery checkbox 选中不选中展开全部$(function(){//动态绑定默认状态//$(“#ck”).attr(“checked”,true)//选中//$(“#ck”).attr(“checked”,false)//未选中//点击判断选中还是未选中$(“#ck”).click(function(){if($(this).is(“:checked”)){alert(“选中”);}else{alert…

  • 一级域名和二级域名的区别是什么?作用怎样?

    一级域名和二级域名的区别是什么?作用怎样?

  • js正则表达式语法大全_vb 正则表达式

    js正则表达式语法大全_vb 正则表达式 JavaScript正则表达式的用法正则表达式是一种可以用于模式匹配和替换的强大工具,在很多语言中都可以应用。JavaScript对正则表达式提供了很好的支持,Javascript中有一个正则表达式对象RegExp。该对象提供了大量的属性和方法来处理正则表达式,同时,String对象也提供了相关的方法来处理正则表达式,在Web应用中,经常使用正则表达式来验证用户输入的信息,例如在用

  • 2020年度学习规划

    0x00前言之前一直没有发表或者正式的记录过这些规划,想从这段时候开始制作个规划,来记录这段时间的成长,写在博客上面,到时候来看看完成的进展。在年底也会写出一些年度总结预计今年学习的心得、感想、感

    2021年12月11日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号