File类

本文深入解析Java中File类与流的区别,详细讲解了File类的基本方法,包括创建、删除、判断、获取及常用方法,并提供了实际代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1. File类:

作用:

   File类用来把文件和文件夹封装成了对象,

   方便操作文件或者是文件夹的属性,

   File类对象可作为参数传给流对象。

File类和流的区别:

   流操作的是数据,包括键盘输入数据,文件夹里的数据等;

   File类操作文件或文件夹的属性,如创建,删除文件夹。

构造方法:有三种格式:

new File(“C:\\java\\a.txt”);

new File(“C:\\java”,“a.txt”);//这一种方法比第一种方法的优点是:可以给第一个参数传对象,指定同一个文件夹下的文件

new File(“C:”+ File.separator +” java”+”a.txt”);//分隔符File.separator是跨平台的


注意:我刚学习这个类时的一个错误理解: File fl = new File(“C:a.txt”); 这个语句不会创建目录或文件

(我所写的“C:a.txt”是不存在的);

        通过 f1.exists() 方法验证,返回值是false,即不存在“C:a.txt”;

        所以创建文件或文件夹还得 对象f1调用方法,所调用发放在下面介绍。

   现在也觉得这个想法挺搞笑,后面给出了创建文件及文件夹的方法,意思是语句File fl = new File(“C:a.txt”)不能创建,所以需要方法。


2. 基本方法

1.创建

创建分为创建文件和创建文件夹(目录): 

创建文件:createNewFile()   

创建目录:mkdir() 创建单级目录;

          mkdirs() 创建多级目录;

注意: 使用这几个方法,硬盘中不存在文件或目录,则创建,且返回true,

                       硬盘中存在该文件或目录,创建失败,返回false。


Java代码  收藏代码
  1. import java.io.File;  
  2. import java.io.IOException;  
  3.    
  4. public class FileDemo {  
  5.    public static void main(String[] args) throws IOException {  
  6.      /* 指定文件对象 */  
  7.      File f = new File("F:" + File.separator + "java");  
  8.      File file = new File("F:\\java\\a.txt");  
  9.    
  10.      /* 
  11.       * boolean mkdir()创建单级目录,当存在此目录,创建失败(false),否则创建成功(true) 例如:F:\\java 
  12.       * F盘必须存在 F:\\java\123 F:\\java必须存在 boolean 
  13.       * mkdirs()可以创建多级目录,即使前面的目录不存在,那么也会创建,存在此创建失败,不存在创建成功 
  14.       * 例如:F:\\java\day01\\hello 即使F盘中不存在java\\day01 那么使用此方法,也会创建前面不存在的目录 
  15.       * createNewFile() 
  16.       * 创建文件,指定的目录必须存在(F:\\java),如果此目录中存在此文件,此创建失败(false),不存在,则创建成功(true) 
  17.       */  
  18.    
  19.      System.out.println(f.mkdir());// 创建单级目录  
  20.      System.out.println(file.createNewFile());// 创建文件  
  21.      System.out.println(new File("F:\\java\\123\\456").mkdirs());// 创建多级目录  
  22.    }  
  23.    
  24. }  


2. 删除

  方法:boolean delete() 删除文件或者目录, 
                                    注意:所删除的文件或目录存在,则删除,返回true。不存在,没法删除,返回false;
              void deleteOnExie()  程序退出时删除  

Java代码  收藏代码
  1. public class FileDemo {  
  2.    public static void main(String[] args) throws IOException {  
  3.      /* 指定文件对象 */  
  4.      File f = new File("F:" + File.separator + "java");  
  5.      File file = new File("F:\\java\\a.txt");  
  6.    
  7.      /* 
  8.       *  boolean delete()删除文件或者是目录(空的),如果不存在,则是false,存在则删除 
  9.       *  void deleteOnExit()程序退出时删除,即使前面出现了异常,那么在程序结束的时候也会执行此语句,删除此文件 
  10.       */  
  11.    
  12.      System.out.println(f.delete());// 删除目录  
  13.      System.out.println(file.delete());// 删除文件  
  14.       
  15.    }  
  16.    
  17. }  

3. 判断

    方法:boolean exists() 判断文件或者目录是否存在  
                boolean  isFile() 判断是否是文件
               boolean  isDirectory() 判断是否是目录
                boolean  isHidden()   判断是否是隐藏文件
                boolean   isAbsolute()  判断是否是绝对路径                                           
               
       

Java代码  收藏代码
  1. import java.io.File;  
  2. import java.io.IOException;  
  3.    
  4. public class FileDemo {  
  5.    public static void main(String[] args) throws IOException {  
  6.      /* 指定文件对象 */  
  7.      File f = new File("F:" + File.separator + "java");  
  8.      File file = new File("F:\\java\\a.txt");  
  9.    
  10.      /* 
  11.       * boolean exists()判断文件或者目录是否存在 boolean isFile()判断是否是文件 
  12.       *boolean isDirectory()判断是否是目录 boolean isHidden()判断是否是隐藏文件  
  13.       * boolean isAbsolute()判断是否是绝对路径 
  14.       */  
  15.    
  16.      System.out.println(f.exists());// 是否存在  
  17.      System.out.println(file.isFile());// 是否是文件,若存在,切是文件,那么就是true,否则是false  
  18.      System.out.println(file.isDirectory());// 判断是否是目录,存在且是文件,那么就是true,否则是false  
  19.      System.out.println(file.isAbsolute());// 判断是否是绝对路径  
  20.    }  
  21.    
  22. }  


4. 获取

boolean renameTo(Filedest)重命名,也可以模拟移动哦,重命名到其他文件夹中,那就是移动了

  1. String getName()获得文件名称 
  2. String getParent()获得上一目录 String 
  3. getAbsolutePath()获得绝对路径 
  4. long length()获得文件大小 long 
  5. lastModified()获得最后一次修改的时间 

Java代码  收藏代码
  1. import java.io.File;  
  2. import java.io.IOException;  
  3.    
  4. public class FileDemo {  
  5.    public static void main(String[] args) throws IOException {  
  6.      /* 指定文件对象 */  
  7.      File f = new File("F:" + File.separator + "java");  
  8.      File file = new File("F:\\java\\a.txt");  
  9.    
  10.      /* 
  11.       * String getName()获得文件名称 
  12.       * String getParent()获得上一目录 String 
  13.       * getAbsolutePath()获得绝对路径 
  14.       * long length()获得文件大小 long 
  15.       * lastModified()获得最后一次修改的时间 
  16.       */  
  17.    
  18.      System.out.println(f.getName());// 获得名称  
  19.      System.out.println(file.getName());// 获得名称  
  20.      System.out.println(f.getParent());// 获得上一目录  
  21.      System.out.println(file.getParent());// 获得上一目录  
  22.      System.out.println(f.getAbsolutePath());// 获得绝对路径  
  23.      System.out.println(file.getAbsolutePath());// 获得绝对路径  
  24.    }  
  25.    
  26. }  
  27. 结果:  
  28. java  
  29. a.txt  
  30. F:\  
  31. F:\java  
  32. F:\java  
  33. F:\java\a.txt  


3.常用方法

Java代码  收藏代码
  1. public class FileDemo {  
  2.    
  3.    public static void main(String[] args) throws IOException {  
  4.      /* 
  5.       * String[] list()获得指定文件下的所有文件或者目录的名称(包含隐藏文件活目录) 
  6.            String[] list(FilenameFilter filter)获得名称的时候加入了过滤器(包含隐藏文件活目录) 
  7.       * File[] listFiles()获得的是指定文件下的所有File对象(包含隐藏文件活目录) 
  8.       *  File[] listFiles(FilenameFilter filter)加入了过滤器(包含隐藏文件活目录) 
  9.       *  static File[]listRoots()列出了可用目录的根 
  10.       */  
  11.      /* 获得所有的根目录,并打印出 */  
  12.      File[] rootFiles = File.listRoots();  
  13.      for (File f : rootFiles)  
  14.         System.out.println(f);  
  15.      /* 获得F盘下的所有文件或者目录的名称,并打印出 */  
  16.      String[] fileNames = new File("F:\\").list();  
  17.      System.out.println("-----------------\n所有名称");  
  18.      for (String name : fileNames)  
  19.         System.out.println(name);  
  20.      /* 获得F盘下的所有.txt文件安的名称,并打印出,使用的是过滤器,使用匿名内部类,复写accept方法 */  
  21.      String[] fileTxtNames = new File("F:\\").list(new FilenameFilter() {  
  22.         public boolean accept(File dir, String name) {// 此方法决定是否把其名字过滤  
  23.           return name.endsWith(".txt");  
  24.         }  
  25.      });  
  26.      System.out.println("-----------------\n.txt文件");  
  27.      for (String n : fileTxtNames)  
  28.         System.out.println(n);  
  29.      /*File[] listFiles()用法和list()用法一样,只是返回的是File对象数组*/  
  30.      File [] Files=new File("F:\\").listFiles();  
  31.      System.out.println("-----------------");  
  32.      for(File f:Files)  
  33.         System.out.println(f.getName()+":"+f.length());  
  34.    }  
  35.    
  36. }  





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值