public class File extends Object implements Serializable, Comparable <File> 这个File文件既可以表示文件也可以表示目录(文件夹) 构造方法
File(File parent, String child) 根据parent抽象路径名和child路径名字符串创建一个新的File实例。
File(String pathname) 通过将指定路径名字符串转换为抽象路径名来创建一个新File实例
File(String parent, String child) 根据parent路径名字符串和child路径名字符串创建一个新的File实例
import java.io.File; public class MyTest1 { public static void main(String[] args) { //File的构造方法 File file0 = new File("e.txt"); File file = new File("E:\\a.txt"); File file1 = new File("E:\\", "b.txt"); File file2 = new File("E:\\"); File file3 = new File(file2, "c.txt"); } }File类的创建功能
public boolean createNewFile()创建一个新的文件,如果已经存在这样的文件,那么就不会再创建了
public boolean mkdir() 创建文件夹,如果存在这样的文件夹就不会再创建了,此方法只可以创建单层目录,创建多层目录需要一层一层创建
public boolean mkdir() 创建文件夹,如果父类文件夹不存在,会帮你创建出来,既可以创建单层目录也可以创建多层目录。
注意实行: 如果创建文件或者文件夹忘记写盘符路径,那么就会默认创建在项目路径下。
import java.io.File; import java.io.IOException; public class MyTest1 { public static void main(String[] args) throws IOException { //File的构造方法 //这种不带盘符路径的会将创建在当前项目路径下 File file0 = new File("e.txt"); File file = new File("E:\\a.txt"); File file1 = new File("E:\\", "b.txt"); File file2 = new File("E:\\"); File file3 = new File(file2, "c.txt"); boolean f0 = file0.createNewFile(); boolean f1 = file.createNewFile(); boolean f2 = file1.createNewFile(); boolean f3 = file2.createNewFile(); boolean f4 = file3.createNewFile(); System.out.println(f1); } } import java.io.File; public class MyTest2 { public static void main(String[] args) { File file = new File("E:\\bbb\\ccc"); //创建多级目录,返回值是目录是否创建成功, //第一次成功创建返回true,再次创建返回false boolean b = file.mkdirs(); //只能创建单层目录 boolean mkdir = file.mkdir(); } }File类的删除功能
public boolean delete() 删除文件或者是文件夹注意
.删除文件夹时,这个文件夹得是空文件夹,如果这个文件夹里面有文件,则不可以删除Java中得删除时不走回收站的,要删除一个文件夹,该文件夹中不能包含文件或者是文件夹, import java.io.File; import java.io.IOException; public class MyTest3 { public static void main(String[] args) throws IOException { File file = new File("f.txt"); boolean b = file.delete(); System.out.println(b); } }File类的重命名功能
public boolean renameTo(File dest) 把文件重命名为指定的文件路径注意
如果路径名相同,就是改名如果路径名不同就是改名并剪切 import java.io.File; public class MyTest4 { public static void main(String[] args) { File file = new File("a.txt"); boolean b = file.renameTo(new File("f.txt")); //是否重命名成功 System.out.println(b); File file1 = new File("b.txt"); //改名并剪切到了E盘 boolean b1 = file1.renameTo(new File("E:\\a.txt")); System.out.println(b1); } }File类的获取功能
public String getAbsolutePath() 获取绝对路径-public File getAbsoluteFile() 返回该文件的绝对路径的File表现形式
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数组。
import java.io.File; public class MyTest6 { public static void main(String[] args) { File file = new File("aa.txt"); ///获取相对路径 String path = file.getPath(); //返回该文件的绝对路径File表现形式 File file1 = file.getAbsoluteFile(); //返回该文件的绝对路径的String表现形式 String path1 = file.getAbsolutePath(); //获取当前目录下的绝对路径 File file2 = new File("./"); String path2 = file2.getAbsolutePath(); //获取文件名 String name = file.getName(); //获取文件的长度字节数 long length = file.length(); System.out.println(path); System.out.println(file1.toString()); System.out.println(path1); System.out.println(path2); System.out.println(name); System.out.println(length); } }运行结果为:
aa.txt F:\IdeaProjects\MyJava-5-20(IO流)\aa.txt F:\IdeaProjects\MyJava-5-20(IO流)\aa.txt F:\IdeaProjects\MyJava-5-20(IO流)\. aa.txt 0 import java.io.File; public class MyTest7 { public static void main(String[] args) { File file = new File("F:\\IdeaProjects\\MyJava-5-20(IO流)","c.txt"); //反回父路径的String表现形式 String s = file.getParent(); //返回父路径的File表现形式。这种比较灵活 File file1 = file.getParentFile(); String s1 = file1.toString(); System.out.println(s1); System.out.println(s); File file2 = new File(file1, "g.txt"); } }运行结果为:
F:\IdeaProjects\MyJava-5-20(IO流) F:\IdeaProjects\MyJava-5-20(IO流) import java.io.File; public class MyTest { public static void main(String[] args) { File file = new File("E:\\test"); //获取此目录下所有的文件或者文件夹的数组 File[] files = file.listFiles(); for (File file1 : files) { System.out.println(file1); } //获取此目录下所有的文件或者文件夹的名称的数组 String[] list = file.list(); for (String s : list) { System.out.println(s); } } }文件名称过滤器的概述及其使用
public String[] list(FilenameFilter filter)public File[] listFiles(FilenameFilter filter)例子 1.给筛选出,E:\test 目录下 .png结尾的文件,并把他们的后缀名改成 .jpg 2.删除多级目录
import java.io.File; public class MyTest9 { public static void main(String[] args) { File file = new File("E:\\test"); if (file.exists()){ File[] files = file.listFiles(); for (File f : files) { if (f.isFile()&&f.getName().endsWith(".png")){ String name = f.getName(); name = name.substring(0,name.lastIndexOf(".")); File file1 = new File(f.getParent(), name + ".jpg"); f.renameTo(file1); } } }else{ System.out.println("此目录不存在"); } } } import java.io.File; public class MyTest8 { public static void main(String[] args) { File file = new File("E:\\test"); delate(file); } private static void delate(File file) { File[] files = file.listFiles(); for (File f : files) { if(f.isFile()){ f.delete(); }else{ delate(f); } } //删除自己的空目录 file.delete(); } }另外再对File的一些获取功能做些测试
import java.io.File; public class MyTest10 { public static void main(String[] args) { File file = new File("E:\\test"); String name = file.getName(); System.out.println(name); String parent = file.getParent(); System.out.println(parent); String path = file.getAbsolutePath(); System.out.println(path); //获取相对路径 File file1 = new File("c.txt"); String path1 = file1.getPath(); System.out.println(path1); } }