Java File类基础
概述
在Java中,java.io.File类是用于表示文件和目录路径的类,它提供了一系列方法来操作文件系统,包括创建、删除、重命名文件和目录,以及检查文件和目录的属性等。File类的实例可以表示或不表示实际的文件系统对象,例如文件或目录。文件系统可以对单个对象可以具有多组访问权限。文件系统对单个对象可以具有多组访问权限。例如,一组可能适用于对象的所有者 ,另一组可能适用于所有其他用户。对象的访问权限可能会导致此类中的某些方法失败。
File类的基本用法
File类有多种构造方法,最常用的几种如下:
一、构造方法
-
File(String pathname)
- 解释:
- 这个构造方法接受一个表示文件或目录路径的字符串,然后将其转换为抽象路径名来创建一个
File
实例。路径名可以是绝对路径(从根目录开始的完整路径),也可以是相对路径(相对于当前工作目录的路径)。
- 这个构造方法接受一个表示文件或目录路径的字符串,然后将其转换为抽象路径名来创建一个
- 示例:
- 解释:
import java.io.File;
public class FileConstructorExample {
public static void main(String[] args) {
// 创建一个表示文件的File实例,使用相对路径
File file1 = new File("test.txt");
// 创建一个表示目录的File实例,使用绝对路径
File dir1 = new File("C:/Users/user/Desktop/mydir");
}
}
-
File(String parent, String child)
- 解释:
- 此构造方法用于从父路径名字符串和子路径名字符串创建新的
File
实例。父路径是包含子路径的目录路径,子路径是相对于父路径的文件或子目录路径。
- 此构造方法用于从父路径名字符串和子路径名字符串创建新的
- 示例:
- 解释:
import java.io.File;
public class FileConstructorExample {
public static void main(String[] args) {
// 父路径是当前目录下的"parentDir",子路径是"childFile.txt"
File file2 = new File("parentDir", "childFile.txt");
// 父路径是绝对路径,子路径是子目录"subdir"
File dir2 = new File("C:/Users/user/Desktop", "subdir");
}
}
-
File(File parent, String child)
- 解释:
- 这里是从父抽象路径名(已经存在的
File
实例表示父目录)和子路径名字符串来创建新的File
实例。
- 这里是从父抽象路径名(已经存在的
- 示例:
- 解释:
import java.io.File;
public class FileConstructorExample {
public static void main(String[] args) {
File parentDir = new File("C:/Users/user/Desktop");
// 使用已有的父目录File实例和子路径创建File实例
File file3 = new File(parentDir, "newFile.txt");
File subDir = new File(parentDir, "newSubDir");
}
}
二、操作文件和目录的方法
-
exists()
- 解释:
- 这个方法用于检查文件或目录是否存在。如果文件或目录存在,则返回
true
,否则返回false
。
- 这个方法用于检查文件或目录是否存在。如果文件或目录存在,则返回
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File file = new File("test.txt");
if (file.exists()) {
System.out.println("文件或目录存在");
} else {
System.out.println("文件或目录不存在");
}
}
}
-
isDirectory()
- 解释:
- 判断
File
对象是否表示一个目录。如果是目录,则返回true
,如果是文件或者不存在,则返回false
。
- 判断
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File dir = new File("C:/Users/user/Desktop/mydir");
if (dir.isDirectory()) {
System.out.println("是目录");
} else {
System.out.println("不是目录");
}
}
}
-
isFile()
- 解释:
- 判断
File
对象是否表示一个普通文件。如果是文件,则返回true
,如果是目录或者不存在,则返回false
。
- 判断
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File file = new File("test.txt");
if (file.isFile()) {
System.out.println("是文件");
} else {
System.out.println("不是文件");
}
}
}
-
createNewFile()
- 解释:
- 用于创建一个新的空文件。如果文件不存在,则创建成功并返回
true
;如果文件已经存在,则创建失败并返回false
。这个方法可能会抛出IOException
,所以需要进行异常处理。
- 用于创建一个新的空文件。如果文件不存在,则创建成功并返回
- 示例:
- 解释:
import java.io.File;
import java.io.IOException;
public class FileMethodsExample {
public static void main(String[] args) {
File newFile = new File("newFile.txt");
try {
if (newFile.createNewFile()) {
System.out.println("文件创建成功");
} else {
System.out.println("文件已存在");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
-
mkdir()
- 解释:
- 用来创建一个新的目录。如果目录创建成功,则返回
true
;如果目录已经存在或者创建失败(例如,由于父目录不存在或者没有权限等原因),则返回false
。
- 用来创建一个新的目录。如果目录创建成功,则返回
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File newDir = new File("newDir");
if (newDir.mkdir()) {
System.out.println("目录创建成功");
} else {
System.out.println("目录创建失败");
}
}
}
-
mkdirs()
- 解释:
- 创建一个目录及其所有必要的父目录。如果创建成功,则返回
true
;如果目录已经存在,则返回false
。
- 创建一个目录及其所有必要的父目录。如果创建成功,则返回
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File newDirWithParents = new File("parentDir/childDir");
if (newDirWithParents.mkdirs()) {
System.out.println("目录及其父目录创建成功");
} else {
System.out.println("目录创建失败");
}
}
}
-
delete()
- 解释:
- 用于删除一个文件或目录。如果是文件且删除成功,则返回
true
;如果是目录且目录为空且删除成功,也返回true
;否则返回false
。
- 用于删除一个文件或目录。如果是文件且删除成功,则返回
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File fileToDelete = new File("test.txt");
if (fileToDelete.delete()) {
System.out.println("文件删除成功");
} else {
System.out.println("文件删除失败");
}
}
}
-
renameTo(File dest)
- 解释:
- 重命名或移动文件。如果重命名或移动成功,则返回
true
;否则返回false
。dest
是目标文件或目录的File
实例。
- 重命名或移动文件。如果重命名或移动成功,则返回
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File oldFile = new File("oldFile.txt");
File newFile = new File("newFile.txt");
if (oldFile.renameTo(newFile)) {
System.out.println("文件重命名或移动成功");
} else {
System.out.println("文件重命名或移动失败");
}
}
}
-
length()
- 解释:
- 返回文件的长度,单位是字节。如果是目录,则返回值无意义。如果文件不存在,则返回0。
- 示例:
- 解释:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File file = new File("test.txt");
long length = file.length();
System.out.println("文件长度为:" + length + "字节");
}
}
-
lastModified()
- 解释:
- 获取文件最后修改的时间戳,返回值是从1970年1月1日00:00:00 UTC开始到文件最后修改时间所经过的毫秒数。如果文件不存在,则返回0。
- 示例:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File file = new File("test.txt");
long lastModified = file.lastModified();
System.println("文件最后修改时间:" + new java.util.Date(lastModified));
}
}
-
list()和listFiles()
- 解释:
list()
方法返回一个字符串数组,其中包含目录中的文件和子目录的名称(不包含路径信息)。如果是文件或者目录不存在,则返回null
。listFiles()
方法返回一个File
数组,其中包含目录中的文件和子目录的File
实例。如果是文件或者目录不存在,则返回null
。
- 示例:
import java.io.File;
public class FileMethodsExample {
public static void main(String[] args) {
File dir = new File("C:/Users/user/Desktop/mydir");
// list()方法示例
String[] fileNames = dir.list();
if (fileNames!= null) {
for (String name : fileNames) {
System.out.println("目录中的名称:" + name);
}
}
// listFiles()方法示例
File[] files = dir.listFiles();
if (files!= null) {
for (File file : files) {
System.out.println("目录中的File实例:" + file.getAbsolutePath());
}
}
}
}
三、注意事项
-
路径分隔符
- 在Windows系统中,路径分隔符通常是反斜杠
\
,但在Java字符串中,反斜杠是转义字符的起始符号,因此需要使用双反斜杠\\\\
或正斜杠/
来表示路径分隔符。例如,在Windows系统中表示C:\Users\user\Desktop
这个路径,可以写成C:/Users/user/Desktop
或者C:\\Users\\user\\Desktop
。
- 在Windows系统中,路径分隔符通常是反斜杠
-
异常处理
- 许多
File
类的方法在操作文件和目录时可能会抛出IOException
(如createNewFile()
方法),所以在使用这些方法时需要进行异常处理,通常是使用try - catch
块来捕获异常并进行相应的处理。
- 许多
原文地址:https://blog.csdn.net/2303_79480422/article/details/143817320
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!