Java File类的使用(Java进行文件操作)

一、File类概述

java.io.File 类是文件和目录名的 抽象 表示 ,主要用于文件和目录的创建,查找,删除,重命名文件,查询文件最近的修改时间等操作
java把电脑中的文件和文件夹(目录)封装为一个与操作系统无关的File类

二、File类内容整理

1.常量

四个静态成员变量:

  • 1.static String pathSeparator,路径分隔符 Windows → ;Linux → :
  • 2.static char pathSeparatorChar,路径分隔符 Windows → ;Linux → :
  • 3.static String separator,名称分隔符 Windows → \Linux → /
  • 4.static char separatorChar ,名称分隔符 Windows → \Linux → /

注意事项:

  • 1.路径分隔符不建议使用常量直接定义,应该使用 File.separator 来代替斜杠(具有跨平台特性,可适应多种操作系统)
  • 2.pathSeparatorChar 与 pathSeparatorseparatorChar 与 separator 的区别
    将字符型的pathSeparatorChar与separatorChar 与 空的 “双引号”相加 得出pathSeparator与separator
    • public static final String pathSeparator = "" + pathSeparatorChar;
    • public static final String separator = "" + separatorChar;

2.构造方法

File(String pathname):字符串做参数创建File对象。

File(String parent, String child):第一个与第二个字符串拼接创建File对象。

File(File parent, String child):第一个File对象与第二个字符串拼接创建File对象。

File(URI uri) 通过将给定的 file: URI转换为一个抽象路径名来创建File对象。

3.成员方法

获取文件(目录)信息

(1)getAbsolutePath方法,返回此File的 绝对路径 字符串

方法信息:
public String getAbsolutePath()

//创建File对象
File file = new File("D:\\我的文件\\test.txt");

//返回此File的绝对路径名字符串。
File fileAbsoluteFile = file.getAbsoluteFile();
System.out.println("文件/文件夹的绝对路径为:"+ fileAbsoluteFile);

(2)getPath方法,将此File转换为 路径名 字符串

方法信息:
public String getPath()
File类的toString方法 就是 调用的getPath方法

//将此File转换为路径名字符串。
String filePath = file.getPath();
System.out.println("文件/文件夹的构造路径为:" + filePath);

(3)getName方法,返回由此File表示的文件或目录的名称

方法信息:
public String getName()
传递的File对象的结尾部分

//返回由此File表示的文件或目录的名称。
String fileName = file.getName();
System.out.println("文件/文件夹的名称为:" + fileName);

(4)length方法,获取文件大小,文件大小以字节为单位

方法信息:
public long length()
如果文件不存在返回 0
如果File对象表示一个目录,则返回值是不确定的

long fileLength = file.length();
System.out.println("文件/文件夹的长度(大小)为:" + fileLength);

(5)getParent方法,获取父文件夹名称

方法信息:
public String getParent()

System.out.println("父文件夹名称为" + file.getParent());

(6)canRead方法,文件是否可读。

方法信息:
public boolean canRead()

System.out.println("文件是否可读?" + file.canRead());

(7)canWrite方法,文件是否可写

方法信息:
public String canWrite()

System.out.println("文件是否可写?" + file.canWrite());

(8)lastModified方法,获取文件最后修改日期

方法信息:
public long lastModified()
用long类型的毫秒数表示为什么返回的是毫秒数值?点这里

System.out.println("文件最后修改日期为:" + file.lastModified());

判断文件(目录)是否存在

(1)exists方法,此File表示的文件或目录是否实际存在。

方法信息:
public boolean exists()

//创建对象
File dir = new File("D:\\我的文件\\");
File file = new File(dir+"test.txt");
//判断file实例是否存在
System.out.println("目录是否存在:" + dir.exists());
System.out.println("文件是否存在:" + file.exists());

(2)isDirectory方法,此File表示的是否为目录。

方法信息:
public boolean isDirectory()

//判断是文件还是目录
System.out.println("dir是文件吗?" + dir.isFile());

(3)isFile方法,此File表示的是否为文件。

方法信息:
public boolean isFile()
传递的File对象的结尾部分

//判断是文件还是目录
System.out.println("dir是目录吗?" + dir.isDirectory());

创建文件(目录)

(1)createNewFile方法,当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

方法信息:
public boolean createNewFile()
此方法存在IOException异常,必须要进行异常处理(throws,try…catch)

  • 当文件不存在时,创建文件,返回true,存在返回false不覆盖
  • 此方法只能创建文件,不能创建文件夹
  • 创建文件的路径必须存在,否则会出现异常
//创建对象
File dir = new File("D:\\我的文件\\");
File file = new File(dir+"test01.txt");
//创建文件
System.out.println("是否创建:" + file.createNewFile());

(2)mkdir方法,创建由此File表示的目录。

方法信息:
public boolean mkdir()
只能创建单级空文件夹

  • 文件夹不存在,则创建,返回true
  • 文件夹存在,返回false,如果构造方法中的路径不存在也会返回false
//创建对象
File dir = new File("D:\\我的文件\\mkdir");
System.out.println("是否创建:"+dir.mkdir());

(3)mkdirs方法,创建由此File表示的目录,包括任何必需但不存在的父目录。

方法信息:
public boolean mkdirs()
创建多级文件夹

  • 只能创建文件夹(mkdir也是(例如xxx.txt只会创建这名称的文件夹而不是文件))
//创建对象
File dir = new File("D:\\我的文件\\mkdirs");
System.out.println("是否创建:"+dir.mkdirs());

删除文件(目录)

(1)delete方法,删除由此File表示的文件或目录。

方法信息:
public boolean delete()
可以删除文件,也可以删除文件夹

  • 文件或者文件夹删除成功返回true
  • 文件夹中有文件或者文件夹返回false
  • 文件或者文件夹路径不存在返回false
  • 此删除方式删除的文件不会进入到回收站
    • 【注意】避免测试使用是删除重要文件,直接操作硬盘,而不是Windows的“假删除”
//创建对象
File dir = new File("D:\\我的文件\\");
File file = new File(dir+"test.txt");
//文件的删除
System.out.println("test.java是否删除" + file.delete());
//目录的删除
System.out.println("目录是否删除" + dir.delete());

猜你喜欢

转载自blog.csdn.net/weixin_44580492/article/details/112755022