File对象

目录

1.什么是File对象

2.创建File对象

2.1 增加操作

2.2 删除操作

2.3 修改操作

2.4 查询操作


 

1.什么是File对象

File 类 就是当前系统中 文件或者文件夹的抽象表示
    
通俗的讲  就是 使用File对象 来操作我们电脑系统中的文件或者文件夹

学习File类 其实就是学习 如果通过file对象 对系统中的文件/文件夹进行增删改查

2.创建File对象

! 可在自己磁盘内先准备一个目录,以后对文件的操作可以都放在该目录下。

//创建file对象
public class Test3 {
    public static void main(String[] args) {
        //方法一:Windows兼容转义符/、\(\\目录层级)
        File file1 = new File("D\\AAA\\b.txt");
        File file2 = new File("D/AAA/c.txt");
        //方法二:获取当前代码所在可识别的系统的转义符(File.separator)
        System.out.println(File.separator);
        File file3 = new File("D:"+File.separator+"AAA"+File.separator+"c.txt");
    }
}

2.1 增加操作

class Test4{
        public static void main(String[] args) throws IOException {
            File file1 = new File("D:/AAA/bbb.txt");
            //根据具体使用方法的创建不同的类型,创建文件类型不受命名影响
            //创建相应的文件
            file1.createNewFile();
            //创建相应的目录(单层目录)
            File file2 = new File("D:/AAA/BBB");
            file2.mkdir();
            //创建多级目录
            File file3 = new File("D:/AAA/CCC/ddd");
            file3.mkdirs();
        }
    }

2.2 删除操作

 //删除文件
    class Tset5{
        public static void main(String[] args) throws InterruptedException {
            //删除文件
            File file1 = new File("D:/AAA/b.txt");
            file1.delete();
            //当程序退出后删除
            File file2 = new File("D:/AAA/c.txt");
            file2.deleteOnExit();
            //休眠10秒
            //Thread.sleep(5000);
            //删除空目录
            File file3 = new File("D:/AAA/BBB");
            file3.delete();
        }
    }

2.3 修改操作

//修改文件
    class Test6{
        public static void main(String[] args) throws IOException {
            File file1 = new File("D:/AAA/bb.txt");
            //添加一个文件
            file1.createNewFile();
            //设置文件的权限为不能读(windows系统下会设置失败)
            file1.setReadable(false);
            //设置文件不能写
            file1.setWritable(false);
            //设置文件只读权限
            file1.setReadOnly();
            //检查文件是否能读
            boolean a=file1.canRead();
            System.out.println(a);
            //重命名(若修改后的文件名在不同盘,则不创建新的文件)
            file1.renameTo(new File("D:/AAA/ab.txt"));
        }
    }

2.4 查询操作

//查询文件
    class Test7{
        public static void main(String[] args) throws IOException {
            File file1 = new File("D:/AAA/BBB/c.txt");
            //创建一个文件file1.createNewFile();
            //得到一个文件的名称
            String a=file1.getName();
            System.out.println(a);
            //得到一个父级路径名称
            String b=file1.getParent();
            System.out.println(b);
            //判断一个该文件对象是否为文件类型
            boolean c=file1.isFile();
            System.out.println(c);
            //判断该文件是否为目录类型
            boolean d=file1.isDirectory();
            System.out.println(d);

            File file2 = new File("D:/AAA");
            //列出AAA目录下所有的子文件名称
            String[] name=file2.list();
            System.out.println(Arrays.toString(name));
            //for each循环列出所有AAA目录下的文件对象
            File[] files=file2.listFiles();
            for (File f:files){
                System.out.println(f.toString());
            }
        }
    }

经典题目: 使用方法的递归调用

//显示指定目录下的所有文件。D:/AAA下所有的文件.
    class Test8{
        public static void main(String[] args) {
            showAllFiles("D:/AAA");
        }
        //使用传入的路径构建文件对象
       public static void showAllFiles(String path){
           File file1 = new File(path);
           //判断文件是否存在 或者是否存在目录
           if ((!file1.exists())||(!file1.isDirectory())){
               return;
           }
           //列出该目录下的所有文件对象
           File[] files=file1.listFiles();
           //遍历数组
           for (File f:files){
               if (f.isDirectory()){
                   System.out.println(f.getPath()+"目录");
                   //继续调用show方法
                   showAllFiles(f.getPath());
               }else {
                   System.out.println(f.getPath()+"");
               }
           }
       }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值