Java基础 第四节 第八课
【摘要】
File 类
概述构造方法代码展示注意事项
常用方法获取功能的方法代码展示
绝对路径和相对路径代码展示
判断功能的方法代码展示
创建删除功能的方法代码展示
目录的遍...
概述
java.io.File
类是文件和目录路径名的抽象, 主要用于文件和目录的创建, 查找和删除等操作.
构造方法
public File(String pathname)
: 通过将给定的路径名字符串准换为抽象路径名来创建新的 File 实例public File(String parent, String child)
: 从父路径名字符串和子路径名字符串创建新的 File 实例public File(File parent, String child)
: 从父抽象路径名和子路径名字符串创建新的 File 实例
代码展示
import java.io.File;
public class Test {
public static void main(String[] args) {
// 文件路径名
String pathname = "a.txt";
File file1 = new File(pathname);
// 通过父路径和子路径字符串
String parent = "c:/Users/Windows/Desktop";
String child1 = "b.txt";
File file2 = new File(parent, child1);
// 通过父级File对象和子路径字符串
File parentDir = new File("c:/Users/Windows/Desktop");
String child2 = "b.txt";
File file3 = new File(parentDir, child2);
}
}
注意事项
- 一个 File 对象代表硬盘中实际存在的一个文件或者目录
- 无论该路径下是否存在文件或者目录, 都不影响 File 对象的创建
常用方法
获取功能的方法
- ```public String getAbsolutePath()``: 返回此 File 的绝对路径名字符串
public String getPath()
: 返回此 File 的构造路径字符串public String getName()
: 返回由此 File 表示的文件或者目录的名称public long length()
: 返回由此 File 表示的文件的长度
代码展示
import java.io.File;
public class Test {
public static void main(String[] args) {
File f = new File("c:/Users/Windows/Desktop/d.txt");
System.out.println("文件的绝对路径:" + f.getAbsolutePath());
System.out.println("文件的构造路径:" + f.getPath());
System.out.println("文件名称:" + f.getName());
System.out.println("文件长度:" + f.length());
}
}
输出结果:
文件的绝对路径:c:\Users\Windows\Desktop\d.txt
文件的构造路径:c:\Users\Windows\Desktop\d.txt
文件名称:d.txt
文件长度:0
绝对路径和相对路径
- 绝对路径: 从盘符开始的路径, 这是一个完整的路径
- 相对路径: 相对于项目目录的路径, 这是一个便捷的路径 (开发中经常使用)
代码展示
import java.io.File;
public class Test {
public static void main(String[] args) {
// C盘下的a.txt文件
File f1 = new File("C:/Users/Windows/Desktop/a.txt");
System.out.println(f1.getAbsolutePath());
// 项目下的a.txt文件
File f2 = new File("a.txt");
System.out.println(f2.getAbsolutePath());
}
}
输出结果:
C:\Users\Windows\Desktop\a.txt
C:\Users\Windows\IdeaProjects\测试6\a.txt
判断功能的方法
public boolean exists()
: 此 FIle 表示的文件或目录是否实际存在public boolean isDirectory()
: 此 File 表示的是否为目录public boolean isFile()
: 此 FIle 表示的是否为文件
代码展示
import java.io.File;
public class Test {
public static void main(String[] args) {
File f1 = new File("a.txt");
File f2 = new File("b.txt") ;
// 判断是否存在
System.out.println("f1 是否存在:" + f1.exists());
System.out.println("f2 是否存在:" + f2.exists());
// 判断是文件还是目录
System.out.println("f1 是否是文件" + f1.isFile());
System.out.println("f1 是否是目录" + f1.isDirectory());
}
}
创建删除功能的方法
public boolean createNewFile()
: 当且仅当具有该名称的文件尚不存在时, 创建一个新的空文件public boolean delete()
: 删除由此 File 表示的文件或目录public boolean mkdir()
: 创建由此 File 表示的目录public boolean mkdirs()
: 创建由此 File 表示的目录, 包括任何必须但不存在的父目录
代码展示
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
// 文件的创建
File f1 = new File("aaa.txt");
System.out.println("是否存在:" + f1.exists()); // false
System.out.println("是否创建:" + f1.createNewFile()); // true
System.out.println("是否存在:" + f1.exists()); // true
// 目录的创建
File f2 = new File("newDir");
System.out.println("是否存在:" + f2.exists()); // false
System.out.println("是否创建:" + f2.mkdir()); // true
System.out.println("是否存在:" + f2.exists()); // true
// 创建多级目录
File f3 = new File("newDira/newDirb");
System.out.println(f3.mkdir()); // false
File f4 = new File("newDira/newDirb");
System.out.println(f4.mkdirs()); // true
// 文件的删除
System.out.println(f1.delete()); // true
// 目录的删除
System.out.println(f2.delete()); // true
System.out.println(f4.delete()); // false
}
}
API 中说明: delete 方法, 如果此 File 表示目录, 则目录删空才能删除.
目录的遍历
public String[] list()
: 返回一个 String 数组, 表示该 File 目录中的所有子文件或目录public File[] listFiles()
: 返回一个 File 数组, 表示该 File 目录中的所有的子文件或目录
import java.io.File;
public class Test {
public static void main(String[] args) {
File dir = new File("java_code");
// 获取当前目录下的文件夹名称
String[] names = dir.list();
for(String name : names){
System.out.println(name);
}
// 获取当前目录下的文件以及文件夹对象, 只要拿到了文件对象, 那么就可以获取更多信息
File[] files = dir.listFiles();
for(File file : files){
System.out.println(file);
}
}
}
注: 调用 listFiles 方法的 File 对象, 表示的必须是实际存在的目录. 否则返回 null, 无法进行遍历.
文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。
原文链接:iamarookie.blog.csdn.net/article/details/111578014
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)