文件(File类)
1、File类的构造方法
【注】:构造一个File对象,并不会导致任何磁盘操作。只有当我们调用File对象的某些方法(比如: createNewFile(); 方法)的时候,才真正进行磁盘操作。
方法名 | 方法说明 |
---|---|
File (String pathname) | 根据参数中文件路径字符串 创建文件对象 |
File (String parent, String child) | 根据父路径名字符串 和子路径名字符串 创建文件对象 |
File (File parent, String child) | 根据父文件对象 和子路径名字符串 创建文件对象 |
举例说明
public class Demo {
public static void main(String[] args) {
//构造方法一:
//File(String pathname);//通过将给定的路径名字符串,转换为抽象路径名来创建新的File实例
String pathName = "D:/Demo1/Demo11/hello.txt";//使用绝对路径创建一个文件对象
File file_1 = new File(pathName);
//构造方法二:
//File(String parent,String child);//从父抽象路径名和子路径名字符串创建新的 File实例
String parent = "D:\\Demo2\\Demo22";// 此处路径 = "D:/Demo/Demo2"
String child_1 = "hello.txt";
File file_2 = new File(parent, child_1);
//构造方法三:
//File(File parent,String child);//根据父文件对象和子路径名字符串创建文件对象
File file_parent = new File("D:\\Demo3");
String child_2 = "\\Demo33\\hello.txt";
File file_3 = new File(file_parent, child_2);
//输出文件类对象的路径
//直接输出file类对象, 输出的就是file代表的文件绝对路径
System.out.println("file_1的路径:" + file_1);
System.out.println("file_2的路径:" + file_2);
System.out.println("file_3的路径:" + file_3);
}
}
输出结果
2、File类创建文件和目录的方法
方法名 | 方法说明 |
---|---|
boolean createNewFile() | 创建文件 ,若此文件已存在则返回false |
boolean mkdir() | 创建一级文件 ,如果此文件目录存在, 或此文件目录的父目录不存在, 则返回false |
boolean mkdirs() | 创建多级目录 , 如果父目录不存在, 则一并创建 |
boolean renameTo(File dest) | 重命名文件或剪切文件 由此抽象路径名表示的文件 |
举例说明(此代码接上面)
//file_1 path:"D:/Demo1/Demo11/hello.txt"
file_1.mkdir();//返回 false,因为父级目录不存在
//此操作会创建三级目录 (Demo1->Demo11->hello.txt),此处(hello.txt)是一个目录而不是文件
file_1.mkdirs();
//如果要新建文件需要使用createNewFile()
file_1.mkdir();//返回 false,因为在 "D:/Demo1/Demo11"路径下有一个名为(hello.txt)的目录
//在 "D:/Demo1/Demo11" 目录下创建一个名为 hello2 的txt文件
File file_5 = new File("D:/Demo1/Demo11/hello2.txt");
try {
if (file_5.createNewFile()) {
System.out.println("文件创建成功!");
}else {
System.out.println("文件创建失败!");
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("文件创建失败!");
}
//重命名文件或剪切文件
// file对象1.renameTo(file对象2);
String pathName2 = "D:/hello3.txt";
File file_6 = new File(pathName2);//现在是hello3.txt
System.out.println(file_6.createNewFile());//检验是否成功创建文件file_6
File file_7 = new File("D:/helloworld.txt");
file_6.renameTo(file_7);//hello3.txt 已经更名为 helloworld.txt
System.out.println(file_6);//结果是:D:\hello3.txt (本地不存在了)
System.out.println(file_7);//结果是:D:\helloworld.txt (本地存在)
}
}
3、删除文件的方法
方法名 | 方法说明 |
---|---|
boolean delete() | 该方法默认只能删除文件 和空文件夹 |
4、判断文件的方法
方法名 | 方法说明 |
---|---|
boolean isDirectory() | 判断是否是文件目录 |
boolean isFile | 判断是否是文件 |
boolean exists() | 判断是否存在 |
boolean canRead() | 判断是否可读 |
boolean canWrite() | 判断是否可写 |
boolean isHidden() | 判断是否隐藏 |
举例说明
public class TestFile3 {
public static void main(String[] args) throws IOException {
File f1 = new File("hello2.txt");
File f2 = new File("D:/hello3.txt");
File f3 = new File("D:/hello4.txt");
f3.createNewFile();//在本地创建 hello4.txt
System.out.println("f1的内容:");
System.out.println(f1.isDirectory());
System.out.println(f1.isFile());
System.out.println(f1.exists());
System.out.println(f1.canRead());
System.out.println(f1.canWrite());
System.out.println(f1.isHidden());
System.out.println("==================");
System.out.println("f2的内容:");
System.out.println(f2.isDirectory());
System.out.println(f2.isFile());
System.out.println(f2.exists());
System.out.println(f2.canRead());
System.out.println(f2.canWrite());
System.out.println(f2.isHidden());
System.out.println("==================");
System.out.println("f3的内容:");
System.out.println(f3.isDirectory());
System.out.println(f3.isFile());
System.out.println(f3.exists());
System.out.println(f3.canRead());
System.out.println(f3.canWrite());
System.out.println(f3.isHidden());
}
}
输出结果:
5、获取文件信息的方法
方法名 | 方法说明 |
---|---|
String getAbsolutePath() | 返回此抽象路径名的绝对路径 名字符串 |
String getPath() | 将此抽象路径名转换为路径名字符串 |
String getName() | 返回由此抽象路径名表示的文件或文件夹的名称 |
String getParent() | 返回此抽象路径名的父路径名的字符串,或 null如果路径名不叫父目录 |
long length() | 返回由此抽象路径名表示的文件的长度 |
long lastModified() | 返回文件最后修改的时间毫秒值 |
举例说明
public class FileInfo {
public static void main(String[] args) {
File f1 = new File("hello.txt");
System.out.println(f1.exists());
File f2 = new File("D:\\Demo1");
System.out.println(f1.getAbsolutePath());
System.out.println(f1.getPath());
System.out.println(f1.getName());
System.out.println(f1.getParent());
System.out.println(f1.length());
System.out.println(f1.lastModified());
System.out.println("===================");
System.out.println(f2.getAbsolutePath());
System.out.println(f2.getPath());
System.out.println(f2.getName());
System.out.println(f2.getParent());
System.out.println(f2.length());
System.out.println(f2.lastModified());
}
}
输出结果:
6、遍历文件夹
方法名 | 方法说明 |
---|---|
public String[ ] list() | 获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。 |
File[] listFiles() | 获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回 |
举例说明
public class Traversal {
public static void main(String[] args) {
File f1 = new File("hello.txt");
File f2 = new File("D:\\Demo1");
//获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
String[] list = f2.list();
for(String str: list) {
System.out.println(str);
}
//获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回
File [] files = f2.listFiles();
for (File o: files){
System.out.println(o);
}
}
}
输出结果:
作者寄语:
如果本篇文章对你有用,请给作者点个小赞,为作者加油!
如果有什么建议和问题,欢迎评论区讨论。
持续更新… …