【Java】—IO:文件和目录操作
提示:以下是本篇文章正文内容,下面案例可供参考
一、File类
1.1 概念
代表物理盘符中的一个文件或者文件夹。
需要导入库:
import java.io.File;
需要处理异常:IOException
File类是具体类,可以直接创建对象:
File file = new File("d:\\文件测试");
其中File()内是文件的绝对路径。
盘符上,大小写都可以,例如D
和d
。
Windows使用\
分割目录
Linux使用/
分割目录
Mac使用/
分割目录
1.2 公共方法
File类中有许多对于文件和目录都是相同操作的方法,在这里整理一下。
1.2.1 getName()
作用:获取文件名
返回值类型:String
代码演示:
File file = new File("D://文件测试//1.txt");
System.out.println(file.getName());
运行结果:
1.txt
1.2.2 getPath()
作用:返回文件的路径。
返回值类型:String
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.getPath());
运行结果:
D:\文件测试\1.txt
1.2.3 getAbsolutePath()
作用:返回文件的绝对路径
返回值类型:String
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.getAbsolutePath());
运行结果:
D:\文件测试\1.txt
1.2.4 isHidden()
作用:判断文件是否是隐藏的,如果是,返回true,否则返回false。文件不存在也会返回false
返回值类型:boolean
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.isHidden());
运行结果:
false
磁盘中:
1.3 文件操作
1.3.1 createNewFile()
作用:创建指定文件,创建成功返回true,如果文件已存在则返回false。
返回值类型:boolean
代码演示
File file = new File("d:\\文件测试\\1.txt");
System.out.println(file.createNewFile());//创建文件,如果不存在,返回true
System.out.println(file.createNewFile());//文件已创建过,再次创建会返回false
运行结果:
true
false
磁盘中:
1.3.2 delete()
作用:删除指定文件。删除成功则返回true,如果文件不存在则返回false。
返回值类型:boolean
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.delete());//如果文件存在,删除文件并返回true,否则返回false
System.out.println(file.delete());//因为文件已经删除,所以返回false
运行结果:
true
false
磁盘中:
1.3.3 length()
作用:返回文件的长度
返回值类型:long
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.length());
运行结果:
16
磁盘中:
ABC:3(1 + 1 + 1)
张三:6(3 + 3)
!@#$%:5(1 + 1 + 1 + 1 + 1)
两个空格:2(1 + 1)
共计:16(字符)
ANSI
编码格式下,一个汉字占2
个字节
UTF-8
编码格式下,一个汉字占3
个字节
1.3.4 lastModified()
作用:返回文件的最后一次修改时间。
返回值类型:Date
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.lastModified());
Date date = new Date(file.lastModified());
System.out.println(date);
运行结果:
Tue Jan 16 19:14:21 CST 2024
2024年1月16日 19:14:21
磁盘中:
1.3.5 exists()
作用:判断文件是否存在,如果存在,返回true,否则返回false。
返回值类型:boolean
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.exists());//之前创建过,所以文件存在,返回true
file.delete();
System.out.println(file.exists());//文件被删除,不存在,返回false
运行结果:
true
false
1.3.6 isFile()
作用:判断是否是文件,如果是,返回true,否则返回false。文件不存在也会返回false。
返回值类型:boolean
代码演示:
File dir = new File("D:\\文件测试");//目录
File file = new File("D:\\文件测试\\1.txt");//文件
System.out.println(dir.isFile());//dir指向的是目录:文件测试,不是文件,所以false
System.out.println(file.isFile());//file指向的是文件:1.txt,是文件,但是文件不存在,所以返回false
file.createNewFile();
System.out.println(file.isFile());//此时文件存在,所以返回true
运行结果:
false
false
true
1.3.7 canWrite()
作用:判断文件是否可写,如果是,返回true,否则返回false
返回值类型:boolean
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.canWrite());
运行结果:
true
磁盘中:
1.3.8 renameTo(File file2)
作用:将文件移动至目标文件file2所在路径,可以改名,成功则返回true,失败返回false。
返回值类型:boolean
代码演示:
File file = new File("D:\\文件测试\\1.txt");
System.out.println(file.renameTo(new File("D:\\文件测试\\2.txt")));//功能1:为文件改名
运行结果:
true
1.4 目录操作
1.4.1 mkdit()
作用:创建空目录,可创建单目录和多级目录。
返回值类型:boolean
代码演示:
File dir1 = new File("D:\\文件测试\\文件测试2");
System.out.println(dir1.mkdir());//创建单目录
System.out.println(dir1.mkdir());//目录已存在,再次创建会返回false
运行结果:
true
false
磁盘中:
1.4.2 mkdirs()
作用:创建多级空目录,如果文件不存在则返回true,否则返回false。
返回值类型:boolean
代码演示:
File dir = new File("D:\\文件测试\\文件测试3\\文件测试4");
System.out.println(dir.mkdirs());//创建多级目录
System.out.println(dir.mkdirs());//多级目录已创建,返回false
运行结果:
true
false
磁盘中:
1.4.3 delete()
作用:删除空目录,返回true,如果目标目录不是空的,或者目录不存在,返回false。
返回值类型:boolean
代码演示:
File dir1 = new File("D:\\文件测试\\文件测试3");
File dir2 = new File("D:\\文件测试\\文件测试2");
File file = new File("D:\\文件测试\\文件测试3\\1.txt");
file.createNewFile();//在文件测试3中创建文件
System.out.println(dir1.delete());//由于文件测试3不是空目录,所以删除失败,返回false
System.out.println(dir1.delete());//目录已经被删除,返回false
System.out.println(dir2.delete());//目录:dir2是空目录,可以删除,返回true
运行结果:
false
false
true
1.4.4 isDirectory()
作用:在磁盘中,判断指定路径是否是目录,如果是,返回true,否则返回false
返回值类型:boolean
代码演示:
File file = new File("D:\\文件测试\\1.txt");
File dir = new File("D:\\文件测试");
System.out.println(file.isDirectory());//判断是否是目录,如果不是,返回false
System.out.println(dir.isDirectory());//是目录,返回true
运行结果:
false
true
磁盘中:
总结
讲解了Java中对文件和目录的操作。