File类概述和API
File类:代表当前操作系统的文件对象。
File类:是用来操作操作系统的文件对象的,删除文件,获取文件信息,创建文件(文件夹)。
File类的创建对象的API:
包:java.io.File
(1)构造器:
-- public File(String pathname)
-- public File(String parent, String child)
-- public File(File parent , String child)
File类创建文件对象的格式:
File f = new File("绝对路径/相对路径");
绝对路径:从磁盘的的盘符一路走到目的位置的路径。
-- 绝对路径依赖具体的环境,一旦脱离环境,代码可能出错!!
相对路径: 去找工程中的文件才可以使用相对路径。
-- 没有盘符,默认就是直接去工程下寻找文件的
-- 能用相对路径就尽量用
File f = new File("文件路径/文件夹路径");
广义来说操作系统认为文件包含:文件和文件夹。
File类可以创建文件对象,代表该文件,然后就可以通过代码操作该文件。
public class FileDemo01 {
public static void main(String[] args) {
// 1.绝对路径创建文件对象
//File f = new File("D:\\腾讯图片资源服务器\\meinv.jpg");
// File f = new File("D:/腾讯图片资源服务器/meinv.jpg");
File f = new File("D:"+File.separator+File.separator+"图片"+File.separator+"meinv.jpg");
long size = f.length(); // 获取该文件的大小:返回的是字节大小。
System.out.println(size);
// 2.相对路径创建文件对象(默认是相对到工程目录直接寻找)
File f1 = new File("datas/files.txt");
f1.delete();
// 3.创建一个文件夹的文件对象
File f2 = new File("D:\\图片");
System.out.println(f2.exists()); // 是否存在!
}
}
File类的常用的API
- public String getAbsolutePath() :返回此File的绝对路径名字符串。
- public String getPath() : 获取定义文件时使用的路径
- public String getName() : 返回由此File表示的文件或目录的名称。
- public long length() : 返回由此File表示的文件的长度。
- public boolean exists() :此File表示的文件或目录是否实际存在。
- public boolean isDirectory() :此File表示的是否为目录。
- public boolean isFile() :此File表示的是否为文件
- public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
- public boolean delete() :删除由此File表示的文件或目录。
- public boolean mkdir() :创建由此File表示的目录。
- public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。
public class FileDemo {
public static void main(String[] args) {
File f = new File("D:\\图片");
// 1.获取绝对路径
System.out.println(f.getAbsolutePath());
// 2.获取文件对象的名称(包含后缀)
System.out.println(f.getName());
// 3.获取文件的大小
System.out.println(f.length()); // 10
// 4.获取最后的修改时间
long time = f.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(time));
// 5.getPath():获取定义文件时使用的路径
System.out.println(f.getPath());
// 6.获取上一级父路径(上级路径)
System.out.println(f.getParent());
// 7.获取上一级文件对象(上级文件对象)
File parentFile = f.getParentFile();
System.out.println(parentFile);
File f1 = new File("src\\xiaohuihui.txt");
// 1.获取绝对路径
System.out.println(f1.getAbsolutePath());
// 2.获取文件对象的名称(包含后缀)
System.out.println(f1.getName());
// 3.获取文件的大小
System.out.println(f1.length()); // 10
// 4.获取最后的修改时间
long time1 = f1.lastModified();
System.out.println(sdf.format(time1));
// 5.getPath():获取定义文件时使用的路径
System.out.println(f1.getPath());
}
}
File 目录的遍历
- public String[] list():获取当前目录下所有的一级文件名称到一个字符串数组中去返回。
- public File[] listFiles():获取当前目录下所有的一级文件对象到一个文件对象数组中去返回(重点)
这些API只能得到一级文件对象操作。
public class FileDemo {
public static void main(String[] args) {
// 定位一个目录
File f = new File("src/com/woaini");
// 1.获取当前目录下所有的一级文件名称到一个字符串数组中去。
String[] names = f.list();