File:文件和目录路径名的抽象表示
1:文件和目录是可以通过 File 封装成对象的 2:对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的
构造方法: File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
File(String parent,String child):从父路径名字符串和子路径名字符串创建新的File实例。
File(File parent,String child):从父抽象路径名和子路径名字符串创建新的 File实例。
File类的创建功能
public boolean createNewFile(): 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件public boolean mkdir(): 创建由此抽象路径名命名的目录 public boolean mkdirs(): 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
注意:
创建的文件和目录不能有重名,mkdir()方法只能创建一级目录,mkdir()可以创建多级目录;
不管是目录还是文件,只要被创建出来了就不能再被创建;
package File;
import java.io.File;
import java.io.IOException;
/**
* File类的创建功能
* public boolean createNewFile(): 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
* 如果文件不存在,则会创建文件并且返回true
* 如果文件存在,就不会在创建文件,会返回一个false
* public boolean mkdir(): 创建由此抽象路径名命名的目录
* 如果目录不存在,则会创建目录并且返回true
* 如果目录存在,就不会在创建目录,会返回一个false
* public boolean mkdirs(): 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
* 如果目录不存在,则会创建目录并且返回true
* 如果目录存在,就不会在创建目录,会返回一个false
*/
public class File_Demo02 {
public static void main(String[] args) throws IOException {
//在D:\学习作业\File测试目录下创建一个java.txt文件
File f1=new File("D:\\学习作业\\File测试\\java.txt");
System.out.println(f1);
boolean newFile = f1.createNewFile();
System.out.println(newFile);
System.out.println("----------------");
//在D:\学习作业\File测试目录下创建一个java目录
File f2=new File("D:\\学习作业\\File测试\\java");
System.out.println(f2.mkdir());
System.out.println("---------------");
//在D:\学习作业\File测试目录下创建一个多级目录:javase\der
File f3=new File("D:\\学习作业\\File测试\\javase\\der");
// System.out.println(f3.mkdir());
//mkdir()这个方法是不能创建多级目录的,是不可以在不存在的目录下创建目录的
System.out.println(f3.mkdirs());
//在D:\学习作业\File测试目录下创建一个javase.txt文件
File f4=new File("D:\\学习作业\\File测试\\javase.txt");
System.out.println(f4.mkdir());
/**
* 这个会创建一个 javase.txt 的目录,所以判断创建的是文件还是目录,不能通过文件的后缀名来判断,只能通过看创建的方法来判断创建的是什么
*/
//再用创建目录的方法创建,还是创建不出来,原因是在D:\学习作业\File测试这个目录下已经有了一个javase.txt目录了
//创建的是目录还是文件,不能出现一样的名字,重名之后是不能被创建出来的
System.out.println(f4.createNewFile());
}
}
File类的判断和获取功能
package File;
import javax.xml.transform.Source;
import java.io.File;
/**
* 测试目录:D:\学习作业\File测试
*
* FiLe类的判断和获取功能:
* public boolean isDirectory():测试此抽象路径名表示的File是否为目录
* public boolean isFile():测试此抽象路径名表示的File是否为文件
* public boolean exists():测试此抽象路径名表示的File是否存在
*
* public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
* public String getPath():将此抽象路径名转换为路径名字符串
* public String getName():返回由此抽象路径名表示的文件或目录的名称
* public String[ ] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
* public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组
*/
public class File_Demo03 {
public static void main(String[] args) {
//public boolean isDirectory():测试此抽象路径名表示的File是否为目录
// File f1 = new File("D:\\学习作业\\File测试\\java.txt");//没有这个目录它会返回false
File f1 = new File("D:\\学习作业\\File测试\\javase.txt");
System.out.println(f1.isDirectory());
//public boolean isFile():测试此抽象路径名表示的File是否为文件
File f2 =new File("D:\\学习作业\\File测试\\java.txt");
System.out.println(f2.isFile());
//public boolean exists():测试此抽象路径名表示的File是否存在,这个是用来判断是否存在这个路径,不管是文件还是文件夹目录
//File f3 = new File("D:\\学习作业\\File测试\\java123.txt");//我的目录下没有这个文件,他会返回false
File f3 = new File("D:\\学习作业\\File测试\\javase.txt");//路径下有这个目录,
System.out.println(f3.exists());
//public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串,就是找出本项目所在的路径
File f4 =new File("");
System.out.println(f4.getAbsolutePath());
//public String getPath():将此抽象路径名转换为路径名字符串,直接获取路径
File f5 =new File("D:\\学习作业\\File测试\\java.txt");
System.out.println(f5.getPath());
//public String getName():返回由此抽象路径名表示的文件或目录的名称,直接获取路径最后的文件或目录
File f6 =new File("D:\\学习作业\\File测试\\java.txt");
System.out.println(f6.getName());
System.out.println("----------------");
//public String[ ] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
//该方法就是输出指定目录下的所有东西,包括目录和文件;
File f7 = new File("D:\\学习作业\\File测试");
String[] list = f7.list();
for (String k : list){
System.out.println(k);
}
System.out.println("---------------");
//public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组
//该方法就是把改路径下的目录和文件都显示出来,且会显示路径,这个方法可以用来判断
File f8 = new File("D:\\学习作业\\File测试");
File[] files = f8.listFiles();
for (File file : files) {
// System.out.println(file);
// System.out.println(file.getName());//这个调用也是显示指定目录下的文件和目录;
/*if(file.isFile()){
System.out.println(file.getName());//这个判断出是否是文件,且输出出来;
}*/
if(file.isDirectory()){
System.out.println(file.getName());//这个能判断出是否是目录,且输出出来;
}
}
}
}
File删除功能
delete() 方法删除
注意:当目录下有文件时,是不可以直接删除的,必须要先删除目录下的文件,才能对目录进行删除;