java File类

简介:
  • Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等
  • File对象代表磁盘中实际存在的文件和目录
代码演示:

1.构造方法
File(String pathname):根据一个路径得到File对象
File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

File类的构造方法
		1. File file = new File("E:\\20151020\\day02\\day02总结.java") ;
		2. File file2 = new File("E:\\20151020\\day02" , "day02总结.java") ;
		3. File file3 = new File("E:\\20151020\\day02") ;
		   File file4 = new File(file3 , "day02总结.java") ;
package org.westo.demo2;

import java.io.File;
import java.io.IOException;

/**
* @Author: Administrator
* @CreateTime: 2019-01-15 11:00
*/
public class MyDemo {
   public static void main(String[] args) throws IOException {
       //封装文件对文件进行操作
       //相对路径 不带有盘符号的路径
       // 绝对路径 带有盘符号的完整路径

       //采用相对路径生成的文件,在工程的根目录下
       File file = new File("a.txt");
       file.createNewFile();
       //采用绝对路径生成的文件
       File file2 = new File("E:\\文件LY\\WestOS_SE\\20190115-JavaSE-课件\\代码\\20190115-MyJavaDemo-File类-上午\\ee.txt");
       file2.createNewFile();
       
       //封装目录
       // File(File parent, String child)
       File fu = new File("D:\\abc");
       File file2 = new File(fu, "b.txt");
       // File(String parent, String child)
       // 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
       File file3 = new File("D:\\abc", "b.txt");
   }
}

结果:
在这里插入图片描述
实例: 如果D:/myword目录中没有名称为word的文件,File类对象可通过调用createNewFile()方法创建一个名称为word.txt的文件;如果word.txt文件存在,可以通过文件对象的delete()方法将其删除。

import java.io.File;
import java.io.IOException;

public class FileTest {
  public static void main(String[] args) {
  File file = new File("D:\\test","test6.txt");
    if(file.exists()){
    file.delete() ;
      System.out.println("文件已删除!");
  }else {
  try {
    file.createNewFile() ;
      System.out.println("文件已创建!");
  } catch (IOException e) {

    e.printStackTrace();
      }
        }
    }
  }

2.创建目录(单级目录,多级目录)

package org.westos.demo3;

import java.io.File;
/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 11:10
 */
public class MyDemo {
    public static void main(String[] args) {
        File file = new File("D:\\myTest");
        //创建目录,第一次创建,如果创建成功返回true,如果目录已经存在,则不会重复创建,返回false
        boolean b = file.mkdir(); //只能创建单级目录
        System.out.println(b);

        System.out.println("--------------------------------------");
        File file1 = new File("D:\\myaaa\\bbb\\cccc");
        boolean mkdirs = file1.mkdirs();//创建多级目录
        System.out.println(mkdirs);
    }
}

3.重命名

package org.westos.demo5;

import java.io.File;

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 11:34
 */
public class MyTest {
    public static void main(String[] args) {
        //重命名:传入的文件路径和源文件路径一样,则是重命名
        File file = new File("ee.txt");
        boolean b = file.renameTo(new File("e.txt")); //返回值是是否重命名成功
        System.out.println(b);
        System.out.println("-----------------------------------");
        File file = new File("f.txt");
        //重命名:如果调用renameTo(new File("D:\rr.txt")); 传入的文件路径和源文件路径不一样,则是剪切重命名
        boolean b = file.renameTo(new File("D:\\f.txt"));
        System.out.println(b);
    }
}

4.删除文件和目录

package org.westos.dmeo4;

import java.io.File;

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 11:15
 */
public class MyDemo5 {
    public static void main(String[] args) {
        File file = new File("a.txt");
        //删除文件 返回值表示是否删除成功
        boolean b = file.delete();
        System.out.println(b);
        //删除目录
        File file1 = new File("D:\\myTest");
        //只能删除空目录
        //非空目录,则无法直接删除,如果要删多级目录,可以使用递归删除
        file1.delete();
    }
}

5.有关于获取的方法

        public String getAbsolutePath ():获取绝对路径
        public String getPath ():获取相对路径
        public String getParent () 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
        public File getParentFile () 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
        public long getTotalSpace () 返回此抽象路径名指定的分区大小。返回总容量 单位字节
        public long getFreeSpace () 返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节
        public String getName ():获取名称
        public long length ():获取长度。字节数
        public long lastModified ():获取最后一次的修改时间,毫秒值
package org.westos.demo2;

import java.io.File;
import java.io.IOException;

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 13:40
 */
public class MyDemo2 {
    public static void main(String[] args) throws IOException {
        //有关于获取的方法
        File file = new File("a.txt");
       // file.createNewFile();
        //获取文件名
        String name = file.getName();
        System.out.println(name);
        //获取文件大小
        long length = file.length();
        System.out.println(length);

        //----------------------------
        File file1 = new File("D:\\test.exe");
        //返回的是绝对路劲的字符串表现形式
        String absolutePath = file1.getAbsolutePath();
        System.out.println(absolutePath);
        //返回的是文件形式
        File file2 = file1.getAbsoluteFile();
        System.out.println(file2.toString());

        //----------------------------
        File file3 = new File("b.txt");
        //获取相对路径
        String path = file3.getPath();
        System.out.println(path);

        //------------------------------
        File file4 = new File("D:\\", "test.exe");
        //获取父路径字符串形式
        String parent = file4.getParent();
        System.out.println(parent);
        //返回的是文件形式
        File parentFile = file4.getParentFile();
        System.out.println(parentFile.toString());
        
        //------------------------------
        File file = new File("D:\\");
        //获取该空间的总容量,单位是字节
        long totalSpace = file.getTotalSpace();
        System.out.println(totalSpace/1024/1024/1024+"G");
        //获取该空间的剩余容量
        long freeSpace = file.getFreeSpace();
        System.out.println(freeSpace/ 1024.0 / 1024.0 / 1024.0 + "G");
        
        //------------------------------
        //获取文件的最后一次修改时间
        File file = new File("D:\\微信");
        long time = file.lastModified();
        Date date = new Date(time);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(date);
        System.out.println(format);
    
        //------------------------------
        // public String[] list ():获取指定目录下的所有文件或者文件夹的名称数组
        // public File[] listFiles ():获取指定目录下的所有文件或者文件夹的File对像数组
        File file1 = new File("E:\\我的图片和音乐\\图片");
        String[] list = file1.list();
        for (String s : list) {
            System.out.println(s);
        }
        
        File file2 = new File("E:\\我的图片和音乐\\图片");
        File[] files = file2.listFiles();
        for (File file : files) {
            System.out.println(file.getName());
        }
    }
}

6.关于判断的方法

package org.westos.demo3;

import java.io.File;

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 13:58
 */
public class MyDemo {
    public static void main(String[] args) {
        //关于判断的方法
        File file = new File("a.txt");
        //判断此文件是否存在
        boolean exists = file.exists();
        System.out.println(exists);
        //判断是否是文件
        boolean file1 = file.isFile();
        System.out.println(file1);
        //判断是否是目录
        boolean directory = file.isDirectory();
        System.out.println(directory);

        File file = new File("a.txt");
        //判断文件是否可读
        boolean b = file.canRead();
        //判断文件是否可写
        boolean b1 = file.canWrite();
        //判断文件是否隐藏
        boolean hidden = file.isHidden();
        // windows 下的所有文件都有可执行权限。要测试这个功能只能用 linux、unix
        //判断文件是否是可执行文件
        // boolean b2 = file.canExecute();
    }
}

有关文件的案例

A:
案例演示:

需求:判断E:\我的图片和音乐\图片 盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

public class MyDemo {
    public static void main(String[] args) {
        File file = new File("E:\\我的图片和音乐\\图片");
        File[] files = file.listFiles();
        for (File f : files) {
            if(f.isFile()&&f.getName().endsWith(".jpg")){
                System.out.println(f.getName());
            }
        }
    }
}

B:
案例演示:

需求:判断E:\我的图片和音乐\图片 盘目录下是否有后缀名为.jpg的文件,后缀名改成 .png

public class MyDemo2 {
    public static void main(String[] args) {
        File file = new File("E:\\我的图片和音乐\\图片");
        //获取该目录下所有的文件和文件夹
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isFile() && f.getName().endsWith(".jpg")) {
                //修改文件名
                String name = f.getName();
                String newFileName = name.substring(0, name.lastIndexOf("."));
                f.renameTo(new File(f.getParent(), newFileName + ".png"));
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值