资讯专栏INFORMATION COLUMN

Java IO学习一:File类

Sanchi / 3185人阅读

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

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是目录
");
            File[] files = file.listFiles();//获取目录下的子目录和文件(仅当层目录下)
            System.out.println("目录下有:
");
            for(File f : files) {
                System.out.println(f);
            }
            System.out.println("#############################
");
            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();
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72052.html

相关文章

  • Java IO学习笔记二

    摘要:学习笔记二流的概念在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。主要功能是向文件中写入内容构造函数根据给定的对象构造一个对象。 Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来...

    ideaa 评论0 收藏0
  • java学习(九) —— java中的File文件操作及IO流概述

    摘要:字节流可以处理所有以为单位存储的文件,也就是说可以处理所有的文件,但是在处理字符的速度上不如字符流。文件字节输入流的读取时,是直接同字节流中读取的。原理就是在字节流的基础上增加了编解码的操作。 前言 流是干什么的:为了永久性的保存数据。 IO流用来处理设备之间的数据传输(上传和下载文件) java对数据的操作是通过流的方式。 java用于操作流的对象都在IO包中。 java IO系统...

    ralap 评论0 收藏0
  • Java IO学习笔记三

    摘要:学习笔记三在整个包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流字符流的转换类。是字节流通向字符流的桥梁它使用指定的读取字节并将其解码为字符。主要的功能还是向文件中写入文件构造函数创建使用默认字符编码的。 Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。 OutputStre...

    CodeSheep 评论0 收藏0
  • Java学习笔记5-方法、流(Stream)、文件(File)和IO

    摘要:是方法返回值的数据类型。方法名和参数表共同构成方法签名。构造方法和它所在类的名字相同,但构造方法没有返回值。输入流表示从一个源读取数据,输出流表示向一个目标写数据。下图是一个描述输入流和输出流的类层次图。有多种构造方法可用来创建对象。 我们经常使用到 System.out.println(),那么它是什么呢? 一、系统方法 我们经常使用到 System.out.println(),那么...

    suemi 评论0 收藏0
  • 慕课网_《Java实现图片水印》学习总结

    摘要:时间年月日星期五说明本文部分内容均来自慕课网。慕课网教学源码无学习源码第一章课程简介引言通过一个项目案例的讲解,如何在应用中实现图片水印的添加。 时间:2017年07月21日星期五说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学源码:无学习源码:https://github.com/zccodere/s... 第一章:课程简介 1-1 引言 通过一...

    levius 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<