package java5; import com.sun.org.apache.bcel.internal.generic.NEW; import org.junit.Test; import java.io.File; import java.io.IOException; import java.util.Date; /**File类的使用 * 1.File类的一个对象,代表一个文件或一个文件目录(俗称文件夹)。 * 2.Filel类声明在java.io包下 * 3.File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法, * 并未涉及到写入读取文件内容的操作,如果需要读取或写入文件内容,必须使用IO流来完成。 * 4.后续File类的对象常会作为参数传递给流的构造器中,指明读取或写入的“终点”。 * @author 冀帅 * @date 2020/8/14-21:53 */ public class FileTest { /* * 1.如何创建File类的实例 * File(String filePath) * File(String parentPath,String childPath) * File(File parentFile,String childPath) * * 2. * 相对路径:相较于某个路径下指明的路径 * 绝对路径:包含盘符在内的文件或文件目录的路径 * * 3.路径分隔符 * Window:\\ * unix:/ * */ @Test public void test1(){ //构造器1: File file1 = new File("hello.txt");//相对路径:相对于当前module File file12 = new File("F:\\idea\\workspace\\untitled\\DayTest0806\\src\\test\\java\\he.txt"); System.out.println(file1); System.out.println(file12); //构造器2: File file3 = new File("F:\\idea\\workspace\\untitled","JavaSenior");//文件目录 System.out.println(file3); //构造器3: File file4 = new File(file3,"hi.txt"); System.out.println(file4); } @Test public void test2(){ File file1 = new File("hello.txt");//相对路径 File file2 = new File("D:\\io\\hi.txt");//绝对路径 System.out.println(file1.getAbsolutePath());//获取绝对路径 System.out.println(file1.getPath());//获取路径 System.out.println(file1.getName());//获取名字 System.out.println(file1.getParent());// System.out.println(file1.length());//长度 System.out.println(new Date(file1.lastModified()));//最近一次修改的时间(文件不存在) System.out.println(); System.out.println(file2.getAbsolutePath()); System.out.println(file2.getPath()); System.out.println(file2.getName()); System.out.println(file2.getParent()); System.out.println(file2.length()); System.out.println(file2.lastModified());//最近一次修改的时间 /*如下的两个方法适用于文件目录: public String[] list():获取指定目录下的所有文件或者文件目录的名称数组 public File listFiles():获取指定目录下的所有文件或者文件目录的File数组 * * * * */ } @Test public void test3(){ File file = new File("D:\\Ding"); String[] list = file.list();//返回下一层文件或者文件目录的名字 for (String s : list) { System.out.println(s); } System.out.println("=============================="); File[] files = file.listFiles();//以绝对路径的方式罗列出来 for (File file1 : files) { System.out.println(file1); } } /* *public boolean renameTo(File dest):把文件重命名为指定的文件路径(把file1里的内容写到file2中,同时file1消失,file2生成) * 比如:file1.renameTo(file2)为例: * 要想保证返回true,需要file1是在硬盘里存在的且file2是不存在的 * */ @Test public void test4(){ File file1 = new File("hello.txt"); File file2 = new File("D:\\io\\hi.txt"); boolean renameTo = file2.renameTo(file1); System.out.println(renameTo); } @Test public void test5(){ File file1 = new File("hello.txt"); System.out.println(file1.isDirectory()); System.out.println(file1.isFile()); System.out.println(file1.exists()); System.out.println(file1.canRead()); System.out.println(file1.isHidden()); System.out.println("======================"); File file2 = new File("D:\\io"); System.out.println(file2.isDirectory()); System.out.println(file2.isFile()); System.out.println(file2.exists()); System.out.println(file2.canRead()); System.out.println(file2.isHidden()); } /*创建硬盘中对应的文件或者文件目录 * public boolean createNewFile():创建文件,若文件存在,则不创建,返回false。 * public boolean mkdir():创建文件目录,如果此文件目录存在,就不创建。如果此文件目录的上层目录不存在,也不会创建 * public boolean mkdirs():创建文件目录,如果上层文件目录不存在,一并创建 * *public boolean delete():删除文件或者文件夹 * 注意:不走回收站 * */ @Test public void test6() throws IOException { File file1 = new File("hi.txt"); if (!file1.exists()){ //文件的创建 file1.createNewFile(); System.out.println("创建成功"); }else {//文件存在 //文件的删除 file1.delete(); System.out.println("删除成功"); } } @Test public void test7(){ //文件目录的创建 File file1 = new File("D:\\io\\io1"); boolean mkdir = file1.mkdir(); if (mkdir){ System.out.println("创建成功1"); } File file2 = new File("D:\\io\\io2"); boolean mkdir1 = file2.mkdirs(); if (mkdir1){ System.out.println("创建成功2"); } } }