File类静态属性
/**
* 静态属性
* 1.static String pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。
* 2.static char pathSeparatorChar 与系统相关的路径分隔符。
* 3.static String separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。
* 4.static char separatorChar 与系统相关的默认名称分隔符。
*/
public static void fun1() {
System.out.println(File.pathSeparator);// windows ; Linux :
System.out.println(File.pathSeparatorChar);
System.out.println(File.separator);// windows \ Linux /
System.out.println(File.separatorChar);
}
File类构造方法
/**
* 构造方法
* 1.File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例。
* 好处:方便单独操作父子路径
* 2.File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
* 3.File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例。
* 好处:父路径可以直接调用File类的方法
* 4.File(URI uri) 通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。
*
* 注:
* 1.windows中路径或文件名不区分大小写
* 2.绝对路径:从盘符开始的固定路径(在系统中具有唯一性)
* 相对路径:相对于某个位置
* 3.两个参数:方便利用传参的形式实例化
* File,String两种:方便不同的调用方式
*/
public static void fun2() {
// 2
File f1 = new File("c:\\abc");
// 3
File f2 = new File("c:", "abc");
// 1
File f3 = new File(f1,"a");
System.out.println(f3);
}
File类常用方法
创建功能
/**
* 创建功能
* 1.boolean createNewFile()
* 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
* 2.boolean mkdir()
* 创建由此抽象路径名命名的目录。(只能创建最后一个文件夹)
* 3.boolean mkdirs()
* 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。 (可以创建多级文件夹)
*
* 如果不存在则进行创建并返回true
* 如果已存在则返回false
* @throws IOException
*/
public static void fun3() throws IOException {
boolean b = new File("d:\\abc\\cba").createNewFile();
}
删除功能
/**
* 删除功能
* boolean delete() 删除由此抽象路径名表示的文件或目录。
* 注:
* 1.被删除的内容在File构造函数中已给出
* 2.删除成功返回true,失败返回false
* 3.删除方法不去回收站,直接从硬盘中删除(删除有风险,运行需谨慎)
*/
public static void fun4() throws IOException {
File file = new File("d:\\abc\\cba");
file.createNewFile();
boolean b = file.delete();
}
获取功能
/**
* 获取功能
* 1.long length() 返回由此抽象路径名表示的文件的长度。
* 注:文件夹没有长度
* 2. 返回父路径
* (1)String getParent()
* 返回此抽象路径名的父 null的路径名字符串,如果此路径名未命名为父目录,则返回null。
* (2)File getParentFile()
* 返回此抽象路径名的父,或抽象路径名 null如果此路径名没有指定父目录。
* 3.获取绝对路径:
* (1)File getAbsoluteFile() 返回此抽象路径名的绝对形式。
* (2)String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
* 4.
* (1)String getName() 返回由此抽象路径名表示的文件或目录的名称。
* (2)String getPath() 将此抽象路径名转换为路径名字符串。
* 效果同toString()
*/
public static void fun5() {
File file = new File("d:\\abc\\plief.jpg");
// 1
long length = file.length();
// 2
String par = file.getParent();
File fp = file.getParentFile();
// 3
File file2 = file.getAbsoluteFile();
String path = file.getAbsolutePath();
// 4
String name = file.getName();
String path1 = file.getPath();
System.out.println(name);
System.out.println(path1);
}
判断功能
/**
* 判断功能
* 1.boolean isAbsolute() 测试这个抽象路径名是否是绝对的。
* 2.boolean isDirectory() 测试此抽象路径名表示的文件是否为目录。
* 3.boolean isFile() 测试此抽象路径名表示的文件是否为普通文件。
* 4.boolean isHidden() 测试此抽象路径名命名的文件是否为隐藏文件
* 5.boolean equals(Object obj) 测试此抽象路径名与给定对象的相等性。
* 6.boolean exists() 测试此抽象路径名表示的文件或目录是否存在。
*
*/
public static void fun6() {
File file = new File("d:\\abc");
File file1 = new File("d:\\abc");
boolean b = file.equals(file1);
System.out.println(b);
}
list功能
/**
* list获取功能
* 1.String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
* 2.File[] listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
* 3.static File[] listRoots() 列出可用的文件系统根。
*
* 注:在获取指定目录下的文件或文件夹时必须满足:
* 1.指定目录必须存在
* 2.指定的必须是目录,否则返回数组为空,出现NullPointerException
*/
public static void fun7() {
File[] files1 = File.listRoots();
File[] files2 = new File("d:\\").listFiles();
for(File file : files2) {
System.out.println(file);
}
}
过滤功能
import java.io.File;
import java.io.FileFilter;
/**
* 自定义过滤器:实现接口FileFilter
* @author 18875
*
*/
public class MyFilter implements FileFilter{
/**
* 重写接口方法:
* 以.java结尾的文件名返回true(放入list中),否则返回false
* 返回true的file对象会被添加入list中
*/
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".java");
}
}
import java.io.File;
/**
* 文件过滤:
* 1.File[] listFiles(FileFilter filter)
* 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
* 2.File[] listFiles(FilenameFilter filter)
* 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
* @author 18875
*
*
* 过滤器原理:
* 1.listFile()遍历目录的同时,获取文件名全路径
* 2.调用过滤器的方法accept(),将获取到的路径传递给accept方法参数pathname
* 3.在accept方法中进行判断,如果为符合给定要求返回true,则将其存入数组中,否则返回false不放入数组
*/
public class FileDemo2 {
public static void main(String[] args) {
File file = new File("D:\\workspace\\myspace\\JAVA_Day19h8\\src\\vp\\lu\\demo1");
File[] listFiles = file.listFiles(new MyFilter());
for(File f : listFiles) {
System.out.println(f);
}
}
}