1.1 File类的简单使用

File类的使用

在学习File类之前,我们需要知道一个知识点的概念、有什么用、需要掌握的东西以及学完后我能做出什么东西出来等。

所以后面的章节也会以这几个点来作为主要的讲解。

1.File类的概念

如果要说File类的概念的话,那就是他是在java.io包下的一个类。

2.用途

通过File类,我们可以使用Java来新建、删除或者重命名 文件和文件夹(注意是两个都可以),但是File类是不能够访问文件里面的内容的, 如果需要访问文件本身的内容,则需要使用I/O流来实现。,这也是为什么我们需要先学习文件File类再学习I/O流的一个原因,因为只有获取到文件,才能访问文件里的内容。

3.学完后我能做出什么东西

对于初学者来说,我们不需要要求很高,只需要学会 创建文件对象后获取其计本信息,比如文件名、是否是文件、创建文件等等即可,特别是需要掌握的内容表格。(稍后会通过案例讲解)

4.需要掌握的内容

File类中我们需要掌握的内容也不是很复杂,只需要掌握Filie中操作文件或目录的常用方法即可。如下:

序号 方法 说明 1 Boolean exists() 判断File对象所对应的文件或目录是否存在 2 Boolean createNewFile() 一般情况下,通过上面的exits()方法判断后如果不存在,则会创建一个该File对象所对应的文件。 3 Boolean delete() 删除File对象所对应的文件或路径 4 Boolean getPath() 获取文件或路径名 5 Boolean getAbsolutePath() 获取File对象所对应的绝对路径名 6 Boolean isFile() 判断File对象所对应的是否是文件 7 Boolean isDirectory() 判断File对象所对应的是否是目录 8 Boolean mkdir() 创建一个单目录 9 Boolean mkdirs() 创建多级目录 10 Long length() 返回文件内容长度 11 File[] listFiles() 返回File对象的所有子文件和目录(返回的是一个File数组) 12 String[] list() 返回File对象的所有子文件和目录(返回的是一个String数组)

在学习过程中,最好的方法就是看书之后、了解知识点之后马上实战,那么这些看起来难懂(对于初学者来说)的东西我们要如何去运用和实现呢?接下来就是第五个部分——实践。

5.实践

为了能够让大家理解和掌握这些概念,我建议大家跟着这个代码一起敲一遍。而且在学习过程中,最好是带着问题去实践,这些题目可以在网络上找,也可以看一些有练习的书,或者让懂的人来给你出也可以,比如老师和同学。那么接下来和大家一起看几个案例。

5.1 案例一 创建文件和相关基操(基本操作的意思)

  1. 创建一个File对象(需要指定路径),并判断该文件是否存在,如果不存在,则创建一个。
    2.获取文件名、文件所对应的路径、绝对路径、文件大小和判断file对象是否是文件对象
    3.删除文件

这个还是挺好理解的,直接从上面的方法中获取即可,那么不懂得同学可以马上看一下代码, 然后凭借记忆敲。

        //这段代码写在main方法里
        //1.创建File对象并指定路径 这里我们D盘里原本是没有happy.txt的
        File file = new File("D:\\happy.txt");
        //2.判断文件是否存在  !代表否定,需要注意
        if (!file.exists()){
            //3.不存在就创建它 创建成功后可以在D盘查看
            try {
                //由于这里会抛出异常,所以需要使用try catch来包裹他
                file.createNewFile();
                System.out.println("文件不存在,但已经创建成功!");
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        //4.获取文件名
        String fileName = file.getName();
        System.out.println("文件名为:"+fileName);
        //5.获取文件路径
        String path = file.getPath();
        System.out.println("文件路径:"+path);
        //6.获取文件绝对路径
        String abPath = file.getAbsolutePath();
        System.out.println("文件绝对路径:"+abPath);
        //7.获取文件大小
        long length = file.length();
        System.out.println("文件大小:"+length);
        //8.判断file是否是File
        System.out.println("判file是否是文件:"+file.isFile());
        //9.删除文件 可以先不写后面几行,在D盘看有没有文件
        file.delete();
        //判断文件是否还存在
         System.out.println("判文件是否还存在:"+file.exists());

在没有写删除的代码之前,可以看到D盘里是又新建的happy.txt文件的,删除后就没有了。

1.1 File类的简单使用

上面我们使用到了之前表格里的1~6还有第10总共7个方法,接下来我们再看一下其他的方法

5.2 案例2 创建目录和基操

1.创建file对象
2.创建单级目录,
3.创建第二个file2对象,是多级目录
4.创建多级目录
5.创建第三个file3对象
6.获取file3对象下的所有子目录和文件,并输出其数量
7.遍历输出file3色温目录和文件名

        //1.创建file对象
        File file = new File("D:\\text");
        //2.创建单级目录,
        file.mkdir();
        //3.创建第二个file2对象,是多级目录
        File file2 = new File("D://text2/text/name");
        //4.创建多级目录
        file2.mkdirs();
        //5.创建第三个file3对象
        File file3 = new File("D://text3");
        //6.获取file3对象下的所有子目录和文件,并输出其数量 注意这里需要事先在对应文件路径中创建对应的文件,如下面的图片所示
        File[] files = file3.listFiles();
        int size = files.length;
        System.out.println("该文件中共有的子目录或者文件数为:"+size);
        //7.遍历输出file3色温目录和文件名
        for (File fileIndex:files) {
            if (fileIndex.isDirectory()){
                System.out.println("目录名为:"+fileIndex.getName());
            } else if (fileIndex.isFile()) {
                System.out.println("文件名为:"+fileIndex.getName());
            }
        }

在创建file3对象前,需要在对应的文件路径下创建如下图所示的文件和文件夹

1.1 File类的简单使用

6.总结

文件对象是IO流的基础,我们只需要掌握上面所展示的表格里面的方法即可,总体而言不算难,多练几遍即可。

Original: https://www.cnblogs.com/zaneblog/p/16618816.html
Author: 一只大狮纸
Title: 1.1 File类的简单使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609017/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • xampp相关配置文件所在路径

    环境: Xampp3.2.4一般来讲,可以在xampp的控制面板打开先关的配置文件,但是出现有些问题的时候,还是需要到别的路径下找到相关配置文件修改才行。 todo:更改xampp…

    Java 2023年6月7日
    095
  • fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化

    fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化 在开发过程中,经常需要和前端交互数据,数据交互的格式都是JSON,在此过程中…

    Java 2023年6月5日
    099
  • Sentinel

    方法级别降级 * 类级别降级 慢调用比例 异常比例 * 异常数 QPS-直接-快速失败 来源应用 QPS-直接-Warm Up QPS-直接-排队等待 QPS-关联-快速失败 QP…

    Java 2023年6月8日
    086
  • 面试记录

    JVM线程属于用户态还是内核态 当进程运行在ring3级别时为用户态,ring0级别时为内核态 有些操作需要有内核权限才能进行,那么有三种由用户态切换到内核态的情况: 系统调用:操…

    Java 2023年6月8日
    094
  • Spring Cloud Gateway 请求日志记录

    https://docs.spring.io/spring-cloud-gateway/docs/2.2.6.RELEASE/reference/html/#reactor-net…

    Java 2023年5月30日
    0106
  • 28.多线程,分组服务端,1万客户端连接,代码优化

    客户端只发送数据,服务端只接收数据。 服务端增加,用户接入,离开函数。 客户端增加,判断是否成功连接服务端标志。 问题:服务端接收客户端数据包,不稳定,波动比较大。 客户端代码: …

    Java 2023年5月29日
    083
  • 适合中小团队的 Git 服务 Gitblit

    Gitblit 概述 Gitblit是一个用于管理,查看和提供Git存储库的开源纯Java堆栈。它主要设计为希望托管集中式存储库的小型工作组的工具。 Gitblit 是一个和 Gi…

    Java 2023年6月7日
    072
  • Spring Boot 启动加载数据 CommandLineRunner

    实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLin…

    Java 2023年5月30日
    097
  • 常见电子书获取资源途经

    比起以往,22年后对于电子书的获取渠道有了更多了解,在此记录。 先来点以前获取电子书的途经。 直接百度,能搜索得到多数电子资源,质量通常难以保证,精力、时间成本高。 各种微信公众号…

    Java 2023年6月7日
    090
  • 经典面试题:==和equals的区别

    1.== 既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型就是比较内存地址 2.equals的话,它是属于java.lang.Object类里面的方法,如…

    Java 2023年6月14日
    0112
  • Java语言版的selenium

    最近在学习java 版的selenium,感叹网上是资料相对python语言版的要少很多 J昵称:DANGO的https://www.cnblogs.com/sundalian/c…

    Java 2023年5月29日
    088
  • 安装最新Nginx

    添加Nginx官方源 vi /etc/yum.repos.d/nginx.repo 添加如下内容 [nginx] name=nginx repo baseurl=http://ng…

    Java 2023年5月30日
    079
  • 我使用Spring AOP实现了用户操作日志功能

    我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 …

    Java 2023年6月9日
    086
  • mybatis中的#和$的区别

    将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by &#8220…

    Java 2023年5月30日
    0103
  • JAVA的类型转换(基本类型)

    类型转换 由于java是强类型语言,所以在进行某些运算的时候,需要用到类型转换。 低–>高指的是字节大小,从小到大。 小数的优先级大于整数 数值进行类型转换时不要…

    Java 2023年6月9日
    098
  • 面试中常见智力题

    确实,这种题旧根脑筋急转弯一样,你见过,才能立马想到,没见过,那确实有点难在现场回答出来。 桶装水 只有两个无刻度的水桶,一个可以装6L水,一个可以装5L水,如何在桶里装入3L的水…

    Java 2023年6月15日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球