学习Java的第13天
1.File类的使用
-
file类的理解
- 指文件和文件目录路径。
- File 不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入/输出流。
- 文件对象表示的是内存中的,是虚拟的。
- File对象可以作为参数传递给流的构造器
-
常用构造器
- public File(String pathname) 参数为文件的绝对路径和相对路径
- 绝对路径:从盘符开始的路径
- 相对路径:相对于某个位置开始
- public File(String parent,String child)
- 以parent为父路径,child为子路径创建File对象
- public File(File parent,String child)
- 根据一个父File对象和子文件路径创建File对象
- public File(String pathname) 参数为文件的绝对路径和相对路径
-
常用方法
public String getAbsolutePath() //获取绝对路径 public String getPath() ///获取路径 public String getName() //获取名称 public String getParent() //获取上层文件目录路径。若无,返回null public long length() //获取文件长度(即:字节数)。不能获取目录的长度。 public long lastModified() //获取最后一次的修改时间,毫秒值 public String[] list() //获取指定目录下的所有文件或者文件目录的名称数组 public File[] listFiles() //获取指定目录下的所有文件或者文件目录的File数组 public boolean renameTo(File dest)//将文件一的名字改成文件名字二 文件二存在 文件一不存在 public boolean isDirectory()//判断是否是文件目录 public boolean isFile() //判断是否是文件 public boolean exists()//判断是否存在 public boolean canRead()//判断是否可读 public boolean canWrite()//判断是否可写 public boolean isHidden() //判断是否隐藏 public boolean createNewFile() //创建文件 如果文件存在就不创建 public boolean mkdir() //创建文件目录 目录存在就不创建 上层目录不存在也不创建 public boolean mkdirs()//创建文件目录 目录存在就不创建 上层目录不存在 也将上层目录一起创建 public boolean delete()//删除文件或者文件夹 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录 //当硬盘当中一个真实的文件和目录存在时,创建文件对象,文件大小等各个属性也会显性的根据物理文件赋值
-
练习
-
利用File构造器,new 一个文件目录file 1)在其中创建多个文件和目录 2)编写方法,实现删除file中指定文件的操作
public static void main(String[] args) throws IOException { File file1 = new File("E:\Tools\hi.txt"); //下面展示一下如何创建一个文件和文件目录 1.new一个文件或者目录对象 这个是在虚拟内存的 File file2 = new File("E:\Tools","haha.txt"); File file3 = new File("E:\Tools","haha1"); //2.通过create方法在物理磁盘中创建文件和目录 file2.createNewFile(); file1.createNewFile(); file3.mkdir(); file3.delete(); file1.delete(); file2.delete(); }
-
判断指定目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
@Test public void test1(){ File srcfile = new File("e:\Tools\code"); //1.创建一个当前文件所在的路径 String[] fileNames = srcfile.list(); //2.用当前目录下的文件名存放到字符数组当中 for (String fileName : fileNames){ if (fileName.endsWith(".jpg")){ System.out.println(fileName); } } }
-
3. 遍历指定目录所有文件名称,包括子文件目录中的文件。 拓展1:并计算指定目录占用空间的大小拓展 2:删除指定文件目录及其下的所有文件
public class Work { @Test public void method(){ //1.创建目录对象 File dir = new File("C:\Users\MSI\Documents\雷电模拟器"); //2.打印目录的子文件 printSubFile(dir); } public void printSubFile(File dir){ //1.dir目录中的文件存储到File文件数组中 File[] subfiles = dir.listFiles(); //2.遍历该文件数组 for (File file :subfiles){ //3.判断该文件是否是文件目录 是递归 否删除 if (file.isDirectory()){ printSubFile(file); }else System.out.println(file.getAbsoluteFile()); } for (File file :subfiles){ //3.判断该文件是否是文件目录 是递归 否删除 if (file.isDirectory()){ file.delete(); } } } }
-