File:
File是java.io.包下的类, File类的对象,用于代表当前操作系统的文件、或文件夹。
注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据。
构造器:
构造器 | 说明 |
---|---|
public File(String pathname) | 根据文件路径创建文件对象 |
public File(String parent, String child) | 根据父路径和子路径名字创建文件对象 |
public File(File parent, String child) | 根据父路径对应文件对象和子路径名字创建文件对象 |
注意:
1.File对象既可以代表文件、也可以代表文件夹。
2.File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。
在windows中路径支持:\和/ 默认是\,字符串中\要写两个 \ \。
在其他操作系统都是使用/
package com.ouyang.demo03;
import java.io.File;
public class demo01 {
public static void main(String[] args) {
//public File(String pathname)
File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
System.out.println("f1 = " + f1);
//public File(String parent, String child)
File f2=new File("D:\\Java\\JavaEE\\FileTest","aaa");
System.out.println("f2 = " + f2);
//public File(File parent, String child)
File f3=new File(f1,"bbb");
System.out.println("f3 = " + f3);
}
}
路径:
路径:
1.绝对路径:从盘符开始。
2.相对路径:不带盘符,默认直接到当前工程下的目录寻找文件。
常用方法:
创删文件:
创建文件:
方法名称 | 说明 |
---|---|
public boolean createNewFile() | 创建一个新的空的文件 |
public boolean mkdir() | 只能创建一级文件夹 |
public boolean mkdirs() | 可以创建多级文件夹 |
package com.ouyang.demo03;
import java.io.File;
import java.io.IOException;
public class demo02 {
public static void main(String[] args) throws IOException {
//File类创建功能:
// 1.booLean createNewFile()创建新文件,true表示创建成功
File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
boolean newFile = f1.createNewFile();
System.out.println("newFile = " + newFile);
// 2.boolean mkdir()make directory创建单级文件夹,true表示创建成功
File f2=new File("D:\\Java\\JavaEE\\FileTest\\bbb");
boolean mkdir = f2.mkdir();
System.out.println("mkdir = " + mkdir);
// 3.booLean mkdirs()创建多级文件夹,true表示创建成功
File f3=new File("D:\\Java\\JavaEE\\FileTest\\ccc\\ddd\\eee");
boolean mkdirs = f3.mkdirs();
System.out.println("mkdirs = " + mkdirs);
}
}
删除文件:
方法名称 | 说明 |
---|---|
public boolean delete() | 删除文件、空文件夹 |
delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。
删除目录时的注意事项:
delete方法直接删除不走回收站。
如果删除的是一个有内容文件夹,需要先删除文件夹中的内容,最后才能删除文件夹。
package com.ouyang.demo03;
import java.io.File;
public class demo04 {
//boolean delete() 可以删除文件和文件夹,删除成功返回true
public static void main(String[] args) {
//删除文件,删除成功返回true
File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
boolean delete = f1.delete();
System.out.println("delete = " + delete);
//删除空文件夹
File f2=new File("D:\\Java\\JavaEE\\FileTest\\bbb");
boolean delete1 = f2.delete();
System.out.println("delete1 = " + delete1);
//删除有内容的文件夹,不能直接删除的
// 先删除文件夹里面的内容,再删除空文件夹
File inner=new File("D:\\Java\\JavaEE\\FileTest\\ccc\\ddd");
boolean delete2 = inner.delete();
System.out.println("delete2 = " + delete2);
File f3=new File("D:\\Java\\JavaEE\\FileTest\\ccc");
boolean delete3 = f3.delete();
System.out.println("delete3 = " + delete3);
}
}
获取文件:
方法名称 | 说明 |
---|---|
public boolean exists() | 判断当前文件对象,对应的文件路径是否存在,存在返回true |
public boolean isFile() | 判断当前文件对象指代的是否是文件,是文件返回true,反之。 |
public boolean isDirectory() | 判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。 |
public String getName() | 获取文件的名称(包含后缀) |
public long length() | 获取文件的大小,返回字节个数 |
public long lastModified() | 获取文件的最后修改时间。 |
public String getPath() | 获取创建文件对象时,使用的路径 |
public String getAbsolutePath() | 获取绝对路径 |
package com.ouyang.demo02;
import java.io.File;
public class demo05 {
public static void main(String[] args) {
File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
// public boolean exists() :
// 判断当前文件对象,对应的文件路径是否存在,存在返回true
System.out.println("f1.exists() = " + f1.exists());//true
// public boolean isFile() :
// 判断当前文件对象指代的是否是文件,是文件返回true,反之。
System.out.println("f1.isFile() = " + f1.isFile());//true
// public boolean isDirectory():
// 判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
System.out.println("f1.isDirectory() = " + f1.isDirectory());//false
}
}
package com.ouyang.demo02;
import java.io.File;
import java.text.SimpleDateFormat;
public class demo06 {
public static void main(String[] args) {
// File类可以获取文件或文件夹相关信息
//文件,绝对路径
File f1=new File("D:\\Java\\JavaEE\\FileTest\\WWW.txt");
//文件夹,相对路径
File f2=new File("homeworkDay08\\abc");
// String getAbsolutePath() 获取绝对路径
System.out.println("f1.getAbsolutePath() = " + f1.getAbsolutePath());//D:\Java\JavaEE\FileTest\WWW.txt
System.out.println("f2.getAbsolutePath() = " + f2.getAbsolutePath());//D:\Java\JavaEE\Program\homeworkDay08\abc
// String getName() 获取名字, 获取路径中最后一个\右边的
System.out.println("f1.getName() = " + f1.getName());//WWW.txt
System.out.println("f2.getName() = " + f2.getName());//abc
// String getParent() 获取父路径,最后一个\左边的
System.out.println("f1.getParent() = " + f1.getParent());//D:\Java\JavaEE\FileTest
System.out.println("f2.getParent() = " + f2.getParent());//homeworkDay08
// long length() long length() 获取"文件"大小, 单位是字节, 文件夹不能直接获取大小, 要把文件夹中的所有文件大小加起来就是文件夹的大小
System.out.println("f1.length() = " + f1.length());//9
System.out.println("f2.length() = " + f2.length());//0
// long lastModified() 获取文件的最后修改时间
long lastModified = f1.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String format = sdf.format(lastModified);
System.out.println("format = " + format);//2024年07月27日 17时33分36秒
}
}
package com.ouyang.demo02;
import java.io.File;
public class demo07 {
public static void main(String[] args) {
File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
boolean b = f1.renameTo(new File("D:\\Java\\JavaEE\\FileTest\\fff"));
System.out.println("b = " + b);
}
}
遍历文件:
方法名称 | 说明 |
---|---|
public String[] list() | 获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。 |
public File[] listFiles() | 获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点) |
listFiles方法:
1.当调用者是文件,或者路径不存在时,返回null。
2.当调用者是一个文件夹,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件。
3.当调用者是一个文件夹,但是没有权限访问该文件夹时,返回null。
package com.ouyang.demo02;
import java.io.File;
public class demo08 {
public static void main(String[] args) {
File f1=new File("D:\\Java\\JavaEE\\FileTest\\ccc");
File[] files = f1.listFiles();
System.out.println("files = " + files);
for (File file : files) {
System.out.println("file = " + file);
}
}
}