Java IO学习一:File类

1,关于File类

File类是IO包中唯一代表磁盘文件本身的对象,
File类定义了一些与平台无关的方法来操作文件。
通过调用File类提供的各种方法,能够完成创建、删除文件、重命名文件、判断文件的读写权限权限是否存在、设置和查询文件的最近修改时间等操作。

2,File类主要操作

    public static void main(String[] args) {
        //File类的静态变量,分别代表当前系统下的:; ; \ \
        System.out.println(File.pathSeparator);
        System.out.println(File.pathSeparatorChar);
        System.out.println(File.separator);
        System.out.println(File.separatorChar);
        
        String pathName = "D:" + File.separator + "mytemp";//在win下等同于:D:/mytemp 或 D:\\mytemp
        /**
         * File共有4中构造方法,没有无参构造方法
         * 1,传入路径(常用)
         * 2,传入URI
         * 3,传入父File,子路径
         * 4,传入父路径,子路径
         */
        File file = new File(pathName);//获得D:/mytemp这个对象
        if(file.exists() && file.isDirectory()) {//file是否存在并且是否是目录
            System.out.println("file是目录\n");
            File[] files = file.listFiles();//获取目录下的子目录和文件(仅当层目录下)
            System.out.println("目录下有:\n");
            for(File f : files) {
                System.out.println(f);
            }
            System.out.println("#############################\n");
            System.out.println(files[0].isFile() ? "files[0]是文件" : "files[0]是目录");
            System.out.println("files[0]的名字:" + files[0].getName());
            System.out.println("files[0]的路径:" + files[0].getPath());
            System.out.println("files[0]的绝对路径:" + files[0].getAbsolutePath());
            System.out.println("files[0]的父目录路径" + files[0].getParent());
            System.out.println(files[0].canRead() ? "files[0]可读" : "files[0]可读");
            System.out.println(files[0].canWrite() ? "files[0]可写" : "files[0]可写");
            System.out.println(files[0].canExecute() ? "files[0]可执行" : "files[0]可执行");
            System.out.println(files[0].isAbsolute() ? "files[0]的路径是绝对路径" : "files[0]的路径不是绝对路径");
            System.out.println("files[0]的路径转换为URI:" + files[0].toURI());
            long lastModifiedTime = files[0].lastModified();//获得文件上次修改时间,单位s
            Date date = new Date(lastModifiedTime);
            SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String format = dateFormate.format(date);
            System.out.println("files[0]的上次修改时间:" + format);
            //删除文件的时候,不会进入回收站
            //删除目录的时候,如果有子文件或子目录,不会删除成功
            if(files[2].exists()) {
                files[2].delete();//删除files[2],这是一个目录
            }
            if(files[6].exists()) {
                files[6].deleteOnExit();//当虚拟机终止时删除files[6],这是一个文件
            }
        }
    }

3,创建File

    @Test
    public void test() throws IOException {
        File parent = new File("D:" + File.separator + "mytemp");
        if(parent.exists()) {
            System.out.println("父目录存在");
            File childFile = new File(parent,"a.txt");
            if(childFile.createNewFile()) {//创建文件,如果创建成功
                System.out.println("文件创建成功!");//如果存在同名文件,不会创建
            };
            File childDirectory = new File(parent,"a");
            if(childDirectory.mkdir()) {//创建目录,如果创建成功
                System.out.println("目录创建成功!");//如果存在同名目录,不会创建
            };
        }
    }

4,删除File

    public static void deleteFile(File file) {
        File[] files = file.listFiles();
        if(files != null) {
            for(File f : files) {
                if(f.isDirectory()) {
                    deleteFile(f);
                }
                f.delete();
            }
        }
        file.delete();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值