Java中File类的概述

1.File类的概述
  • File更应该叫做一个路径
    • 文件路径或者文件夹路径
    • 路径分为绝对路径和相对路径
    • 绝对路径是一个固定的路径,从盘符开始
    • 相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下
  • 查看API指的是当前路径
  • 文件和目录路径名的抽象表示形式
2.File类的构造方法
  • File(String pathname):根据一个路径得到File对象
  • File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
  • File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
class Demo1_File {
  public static void main(String[] args) {
      //demo1();
      //demo2();
      
      File parent = new File("F:\\day19\\video");
      String child = "001_今日内容.avi";
      File file = new File(parent, child);
      System.out.println(file.exists());
      System.out.println(parent.exists());
  }

  public static void demo2() {
      String parent = "F:\\day19\\video";
      String child = "001_今日内容.avi";
      File file = new File(parent, child);
      //exists表示文件目录是否存在
      System.out.println(file.exists());
  }

  public static void demo1() {
      File file = new File("F:\\day19\\video\\001_今日内容.avi");
      System.out.println(file.exists());

      File file2 = new File("xxx.txt");
      System.out.println(file2.exists());

      File file3 = new File("yyy.txt");
      System.out.println(file3.exists());
  }
}
3.File类的创建功能
  • public boolean createNewFile():创建文件,如果已经存在就不会再次创建了
  • public boolean mkdir():创建文件夹,如果已经存在就不会再次创建了
  • public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来。
  • 注意事项:
    • 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
class Demo2_FileMethod {
 public static void main(String[] args) throws IOException {
     //demo1();
     File dir1 = new File("aaa");
     System.out.println(dir1.mkdir());

     File dir2 = new File("bbb.txt");//这样写是可以的,文件夹也是可以有后缀的
     System.out.println(dir2.mkdir());

     File dir3 = new File("ccc\\ddd");
     System.out.println(dir3.mkdirs());//创建多级目录
 }

 public static void demo1() throws IOException {
     File file = new File("yyy.txt");
     System.out.println(file.createNewFile());//如果没有就创建,返回true

     File file2 = new File("zzz");
     System.out.println(file2.createNewFile());
 }
}
4.File类的重命名与删除功能
  • public boolean renameTo(File dest):把文件重命名为指定的文件路径
  • public boolean delete():删除文件或者文件夹
* B:重命名注意事项
	* 如果路径名相同,就是改名。
	* 如果路径名不同,就是改名并剪切。
* C:删除注意事项:
	* Java中的删除不走回收站。
	* 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

class Demo3_FileMethod {
 public static void main(String[] args) {
     //demo1();
     File file1 = new File("yyy.txt");
     System.out.println(file1.delete());

     File file2 = new File("aaa");
     System.out.println(file2.delete());

     File file3 = new File("ccc");//如果删除一个文件夹,那么文件夹必须是空的
     System.out.println(file3.delete());
 }

 public static void demo1() {
     File file1 = new File("ooo.txt");
     File file2 = new File("D:\\xxx.txt");
     System.out.println(file1.renameTo(file2));
 }
}
5.File类的判断功能
  • public boolean isDirectory():判断是否是目录
  • public boolean isFile():判断是否是文件
  • public boolean exists():判断是否存在
  • public boolean canRead():判断是否可读
  • public boolean canWrite():判断是否可写
  • public boolean isHidden():判断是否隐藏
class Demo4_FileMethod {
 public static void main(String[] args) {
     //demo1();
     File file = new File("zzz");
     file.setReadable(false);
     System.out.println(file.canRead()); //windows系统认为所有的文件都是可读的
     file.setWritable(true);
     System.out.println(file.canWrite());//windows系统可以设置为不可写

     File file2 = new File("aaa.txt");
     System.out.println(file2.isHidden());//判断是否是隐藏文件
     System.out.println(file.isHidden());
 }

 public static void demo1() {
     File dir1 = new File("ccc");
     System.out.println(dir1.isDirectory());//判断是否是文件夹

     File dir2 = new File("zzz");
     System.out.println(dir2.isDirectory());

     System.out.println(dir1.isFile());//判断是否是文件
     System.out.println(dir2.isFile());
 }
}
6.File类的获取功能
  • public String getAbsolutePath():获取绝对路径
  • public String getPath():获取路径
  • public String getName():获取名称
  • public long length():获取长度。字节数
  • public long lastModified():获取最后一次的修改时间,毫秒值
  • public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
  • public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
class Demo5_FileMethod {
 public static void main(String[] args) {
     //demo1();
     File dir = new File("F:/day19/video");
     String[] arr = dir.list(); //仅为了获取文件名

     for (String string : arr) {
         System.out.println(string);
     }

     File[] subFiles = dir.listFiles();

     for (File file : subFiles) { //获取文件对象
         System.out.println(file);
     }
 }

 public static void demo1() {
     File file1 = new File("ccc.txt");
     File file2 = new File("D:\\day19\\ccc.txt");
     //System.out.println(file1.getAbsolutePath());//获取绝对路径
     //System.out.println(file2.getAbsolutePath());

     //System.out.println(file1.getPath());//获取构造方法中传入路径
     //System.out.println(file2.getPath());

//		System.out.println(file1.getName());//获取文件或者文件的名字
//		System.out.println(file2.getName());
//
//		System.out.println(file1.length());

     Date d = new Date(file1.lastModified());//文件的最后修改时间
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
     System.out.println(sdf.format(d));
 }
}
7.判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
class Test3 {
 public static void main(String[] args) {
     File dir = new File("E:\\");

/*String[] arr = dir.list();//获取e盘下所有的文件或文件夹
for (String string : arr) {
if(string.endsWith(".jpg")) {
	System.out.println(string);
}
}*/

/*File[] subFiles = dir.listFiles();//获取e盘下所有的文件或文件夹对象

for (File subFile : subFiles) {
if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
	System.out.println(subFile);
}
}*/

     String[] arr = dir.list(new FilenameFilter() {

         @Override
         public boolean accept(File dir, String name) {
             //System.out.println(dir);
             //System.out.println(name);
             File file = new File(dir, name);
             return file.isFile() && file.getName().endsWith(".jpg");
         }
     });

     for (String string : arr) {
         System.out.println(string);
     }
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值