一:File类
File类的概述:文件和目录路径名的抽象表示形式,这个File类可以用来表示文件,也可以用来表示目录.
构造方法:
File(String pathname):根据一个路径得到File对象
File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
常用功能:
创建功能:
public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 注意这个方法只能创建单层目录
如果创建多层目录得一层一层创建
public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 可以创建多层目录 当然也可以
创建单层目录
注意事项:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径
相对路径:没有带盘符的路径
绝对路径:带有盘符的路径
删除功能:
public boolean delete():删除文件或者文件夹
注意:删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面有文件,则不能删除
java中的删除不走回收站。要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
重命名功能:
// 创建File对象封装了a.txt
File file = new File("b.txt") ;
// 创建目标文件对象
File destFile = new File("E:\\c.txt") ;
// public boolean renameTo(File dest): 把指定的文件重命名为dest这个文件对应的名称
System.out.println(file.renameTo(destFile));
注意事项:
如果路径名相同,就是改名。
如果路径名不同,就是改名并剪切。
判断功能:
public boolean isDirectory(): 判断是否是目录
public boolean isFile(): 判断是否是文件
public boolean exists(): 判断是否存在
public boolean canRead(): 判断是否可读
public boolean canWrite(): 判断是否可写
public boolean isHidden(): 判断是否隐藏
获取功能:
public String getAbsolutePath(): 获取绝对路径
public String getPath(): 获取相对路径
public String getParent() : 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录
则返回 null。
public File getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录
则返回 null。
public long getTotalSpace() 返回此抽象路径名指定的分区大小。 返回总容量 单位字节
public long getFreeSpace() 返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节
public String getName(): 获取名称
public long length(): 获取长度。字节数
public long lastModified(): 获取最后一次的修改时间,毫秒值
public String[] list(): 获取指定目录下的所有文件或者文件夹的名称数组
public File[] listFiles(): 获取指定目录下的所有文件或者文件夹的File数组
构造方法及其常用方法的举例:
package org.westos.Demo;
// 构造方法
//
// File(String pathname):根据一个路径得到File对象
// File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
// File(File parent, String child):根据一个父File对象和一个子文件/目录得到File
import java.io.File;
public class Demo1 {
public static void main(String[] args) {
File file = new File("D:\\Demo");//跟据一个路径创建得到一个File对象
file.mkdir();
File file1 = new File("D:\\Demo", "1.txt");//根据一个目录和一个子文件/目录得到File对象
file1.mkdir();
File file2 = new File(file, "2.txt");//根据一个父File对象和一个子文件/目录得到File
file2.mkdir();
// 创建功能:
// public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 注意这个方法只能创建单层目录
// 如果创建多层目录得一层一层创建
// public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 可以创建多层目录 当然也可以
// 创建单层目录
//例如创建一个这样的目录 D:\Demo2\test\1.txt
//1.采用 mkdir();
File file3 = new File("D:\\Demo2");
file3.mkdir();
File file4 = new File("D:\\Demo2\\test1");
file4.mkdir();
File file5 = new File("D:\\Demo2\\test1\\1.txt");
file5.mkdir();
//2.采用mkdirs() 多级目录创建
File file6 = new File("D:\\Demo3\\test2\\2.txt");
file6.mkdirs();
// 删除功能:
// public boolean delete():删除文件或者文件夹
file6.delete();//如果这个文件里面含有文件或者文件夹则不能删除
// 重命名功能:
// public boolean renameTo(File dest): 把指定的文件重命名为dest这个文件对应的名称
File file7 = new File("D:\\b.txt");
// 创建目标文件对象
File destFile = new File("E:\\c.txt");
// public boolean renameTo(File dest): 把指定的文件重命名为dest这个文件对应的名称
//System.out.println(file7.renameTo(destFile));
//判断功能
// public boolean isDirectory(): 判断是否是目录
// public boolean isFile(): 判断是否是文件
// public boolean exists(): 判断是否存在
// public boolean canRead(): 判断是否可读
// public boolean canWrite(): 判断是否可写
// public boolean isHidden(): 判断是否隐藏
File file8 = new File("D:\\Demo4");
file8.mkdir();
System.out.println(file8.isDirectory());//是否是目录
System.out.println(file8.isFile());//是否是文件
System.out.println(file8.exists());//是否存在
System.out.println(file8.canRead());//是否可读
System.out.println(file8.canWrite());//是否可写
System.out.println(file8.isHidden());//是否可隐藏
// 获取功能
// public String getAbsolutePath():获取绝对路径
// public String getPath():获取相对路径
// public String getParent():返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
// public File getParentFile():返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
// public long getTotalSpace():返回此抽象路径名指定的分区大小。 返回总容量 单位字节
// public long getFreeSpace():返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节
// public String getName():获取名称
// public long length():获取长度。字节数
// public long lastModified():获取最后一次的修改时间,毫秒值
// public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
// public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
File file9 = new File("D:\\Demo4");
file9.mkdir();
System.out.println(file9.getAbsolutePath());
System.out.println(file9.getPath());
System.out.println(file9.getParent());
System.out.println(file9.getParentFile());
System.out.println(file9.getTotalSpace());
System.out.println(file9.getFreeSpace());
System.out.println(file9.getName());
System.out.println(file9.length());
System.out.println(file9.lastModified());
}
}
输出指定目录下指定后缀的文件名:
判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
分析:
a: 把E:\\demo这个路径封装成一个File对象
b: 获取该路径下所有的文件或者文件夹对应的File数组
c: 遍历这个数组,进行判断
// 把E:\\demo这个路径封装成一个File对象
File file = new File("E:\\demo") ;
// 获取该路径下所有的文件或者文件夹对应的File数组
File[] files = file.listFiles() ;
// 遍历
for(File f : files){
// 判断
if(f.isFile() && f.getName().endsWith(".jpg")){
System.out.println(f.getName());
}
}
文件名称过滤器的概述及使用:
文件名称过滤器的概述
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)
文件名称过滤器的使用: 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
分析:
a: 把E:\\demo这个路径封装成一个File对象
b: 获取所有的以.jpg结尾的文件数组 (相当于过滤)
c: 遍历数组
public File[] listFiles(FilenameFilter filter)
public String[] list(FilenameFilter filter)
// 把E:\\demo这个路径封装成一个File对象
File file = new File("E:\\demo") ;
// 获取所有的以.jpg结尾的文件数组 (相当于过滤)
// public File[] listFiles(FilenameFilter filter)
File[] files = file.listFiles(new FilenameFilter(){
/**
* dir: 表示的当前文件对应的父文件
* name: 就是每一个文件对应的名称
*/
@Override
public boolean accept(File dir, String name) {
// 封装指定的文件为一个File对象
// File file = new File(dir , name) ;
// System.out.println(file);
// boolean flag = file.isFile() && file.getName().endsWith(".jpg") ;
// 后缀名为.jpg的文件
// System.out.println(dir + "----" + name);
return new File(dir, name).isFile() && name.endsWith(".jpg") ;
}
});
// 遍历数组
for(File f : files){
System.out.println(f.getName());
}
文件名称过滤器的举例:
public class Demo1{
public static void main(String[] args){
// 把E:\\demo这个路径封装成一个File对象
File file = new File("E:\\demo") ;
// 获取所有的以.jpg结尾的文件数组 (相当于过滤)
// public File[] listFiles(FilenameFilter filter)
File[] files = file.listFiles(new FilenameFilter(){
/**
* dir: 表示的当前文件对应的父文件
* name: 就是每一个文件对应的名称
*/
@Override
public boolean accept(File dir, String name) {
// 封装指定的文件为一个File对象
// File file = new File(dir , name) ;
// System.out.println(file);
// boolean flag = file.isFile() && file.getName().endsWith(".jpg") ;
// 后缀名为.jpg的文件
// System.out.println(dir + "----" + name);
return new File(dir, name).isFile() && name.endsWith(".jpg") ;
}
});
// 遍历数组
for(File f : files){
System.out.println(f.getName());
}
}
}