1.File类
1.1 File类概述
基本概念
- 代表当前操作系统的文件对象。
- 是用来操作操作系统的文件对象的,删除文件,获取文件信息,创建文件(文件夹)
1.2 创建对象的API
构造器方法:
方法声明 | 功能概述 |
---|---|
File(String pathname) | 根据参数指定的路径名来构造对象 |
File(String parent, String child) | 根据参数指定的父路径和子路径信息构造对象 |
File(File parent, String child) | 根据参数指定的父抽象路径和子路径信息构造对象 |
boolean exists() | 测试此抽象路径名表示的文件或目录是否存在 |
1.3 创建文件对象的格式
File f = new File("绝对路径/相对路径");
绝对路径:
- 从磁盘的的盘符一路走到目的位置的路径。
- 绝对路径依赖具体的环境,一旦脱离环境,代码可能出错!!
相对路径:
- 去找工程中的文件才可以使用相对路径。没有盘符,默认就是直接去工程下寻找文件的
- 能用相对路径就尽量用,相对路径在任何环境下都是没有问题的!
代码示例
package cn.guardwhy_01;
import java.io.File;
/**
总结:
File创建文件对象:路径可以是绝对路径,相对路径,文件路径,文件夹路径。
能用相对路径就用相对路径,相对路径只有项目中的文件才能用.
*/
public class FileDemo01 {
public static void main(String[] args) {
public static void main(String[] args) {
// 绝对路径
File f1 = new File("E:\\workspace\\Java\\IOStream\\src\\test1\\timg.jpg");
System.out.println("图片长度:" + f1.length());
// 相对路径:默认是相对到工程目录下直接寻找。
File f2 = new File("src/test1/test01.txt");
System.out.println("test01:" + f2.length());
// 3. File f = new File("文件路径/文件夹路径");
File f3 = new File("E:\\workspace\\Java\\IOStream\\src\\test1");
System.out.println("文件存在:" + f3.exists());
}
}
}
执行结果
2 File类获取功能
2.1 常用方法
方法声明 | 功能概述 |
---|---|
String getAbsolutePath( ) | 返回此File的绝对路径名字符串 |
String getPath( ) | 返回由此File表示的文件或目录的名称。 |
long length( ) | 返回由此File表示的文件的长度。 |
2.2 代码示例
package cn.guardwhy.demo01;
import java.io.File;
import java.text.SimpleDateFormat;
public class FileDemo02 {
public static void main(String[] args) {
// 1.定义一个文件对象
File f = new File("E:\\workspace\\Java\\IOStream\\src\\test1\\timg.jpg");
// 获取当前文件对象的绝对路径的字符串
System.out.println("路径:" + f.getAbsolutePath()); // 路径:E:\workspace\Java\IOStream\src\test1\timg.jpg
// 获取创建文件对象的时候用的路径
// 创建文件对象的时候用的路径:E:\workspace\Java\IOStream\src\test1\timg.jpg
System.out.println("创建文件对象的时候用的路径:" + f.getPath());
// 获取当前文件对象的名称
System.out.println("文件对象的名称:" + f.getName()); // 文件对象的名称:timg.jpg
// 获取文件的大小(字节总数大小)
System.out.println("字节总数大小:" + f.length()); // 字节总数大小:19383
System.out.println("+++++++++++++++++==+++++++");
// 2.创建一个文件对象
File f1 = new File("src/guardwhy");
// 获取当前文件对象的绝对路径的字符串
System.out.println("绝对路径:" + f1.getAbsolutePath()); // 绝对路径:E:\workspace\Java\IOStream\src\guardwhy
// 获取创建文件对象的时候用的路径
System.out.println("创建文件对象的时候用的路径:" + f1.getPath()); // 创建文件对象的时候用的路径:src\guardwhy
// 获取当前文件对象的名称
System.out.println("文件对象的名称:" + f1.getName()); // 文件对象的名称:guardwhy
// 获取文件的大小(字节总数大小)
System.out.println("字节总数大小:" + f1.length()); // 字节总数大小:0
System.out.println("++++++++++++++++++++++++++++++++");
// 获取它的上级目录的字符串
System.out.println("上级目录:" + f.getParent()); // 上级目录:E:\workspace\Java\IOStream\src\test1
// 获取它的上级目录的文件对象
System.out.println("上级目录的文件对象:"+ f.getParentFile()); // 上级目录的文件对象:E:\workspace\Java\IOStream\src\test1
// 获取文件的最后修改时间
long time = f.lastModified(); // 时间毫秒值
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE a");
System.out.println("格式化时间:" + sdf.format(time)); // 格式化时间:2020-06-29 17:58:56 星期一 下午
}
}
3 File类判断功能
3.1 常用方法
方法声明 | 功能概述 |
---|---|
boolean exists( ) | 此File表示的文件或目录是否实际存在 |
boolean isDirectory( ) | 此File表示的是否为目录。 |
boolean isFile() | 此File表示的是否为文件。 |
3.2 代码示例
package cn.guardwhy.demo01;
import java.io.File;
public class FileDemo03 {
public static void main(String[] args) {
// 1.定义一个文件对象
File f1 = new File("E:\\workspace\\Java\\IOStream\\src\\test1\\timg.jpg");
// 检测路径是否存在的。检测文件是否存在
System.out.println(f1.exists()); // true
// 判断文件对象是否是文件,是文件返回true,反之false
System.out.println(f1.isFile()); // true
// 判断文件对象是否是文件夹
System.out.println(f1.isDirectory()); // false
// 定义一个文件对象
File f2 = new File("E:\\workspace\\Java\\IOStream\\src\\test1");
// 检测路径是否存在的。检测文件是否存在
System.out.println(f2.exists()); // true
// 判断文件对象是否是文件
System.out.println(f2.isFile()); // false
// 判断文件对象是否是文件夹
System.out.println(f1.isDirectory()); // false
}
}
4.File类创建和删除
4.1 常用方法
方法声明 | 功能概述 |
---|---|
boolean createNewFile( ) | 当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。 |
boolean delete( ) | 删除由此File表示的文件或目录。(只能删除空目录) |
boolean mkdir( ) | 创建由此File表示的目录。(只能创建一级目录) |
boolean mkdirs( ) | 创建由此File表示的目录,包括任何必需但不存在的父目录。 |
4.2 代码示例
package cn.guardwhy.demo01;
import java.io.File;
public class FileDemo04 {
public static void main(String[] args) throws Exception{
// 定义文件对象
File f1 = new File("src/test1/test01.txt");
// 创建一个新文件对象,因为以后文件都是可以自动创建的
System.out.println(f1.createNewFile());
// 删除文件对象
System.out.println(f1.delete());
// delete如果删除文件夹,只能删除空文件夹
File f2 = new File("src/test1/test2");
System.out.println(f2.delete()); // true
// 创建一个文件夹
File f3 = new File("E:\\workspace\\Java\\IOStream\\src\\test1\\ab");
System.out.println(f3.mkdir()); // true
}
}
5.File目录的遍历
5.1 常用方法
方法声明 | 功能概述 |
---|---|
String[] list( ) | 获取当前目录下所有的一级文件名称到一个字符串数组中去返回。 |
File[] listFiles( )(常用) | 获取当前目录下所有的一级文件对象到一个文件对象数组中去返回。 |
5.2 代码示例
package cn.guardwhy.demo01;
import java.io.File;
public class FileDemo05 {
public static void main(String[] args) {
// 定位一个目录
File f = new File("src/cn/guardwhy");
// 获取当前目录下所有的一级文件名称到一个字符串数组中去
String[] names = f.list();
// 遍历操作
for(String n : names){
System.out.println(n);
}
// 获取当前目录下所有的一级文件对象到一个文件对象数组中去返回。
File[] files = f.listFiles();
for(File f1 : files){
System.out.println(f1.getAbsolutePath());
}
}
}