首页 > 其他分享 >1.1 File类的简单使用

1.1 File类的简单使用

时间:2022-08-24 10:00:37浏览次数:47  
标签:文件 1.1 对象 创建 file 简单 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文件的,删除后就没有了。
image

上面我们使用到了之前表格里的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对象前,需要在对应的文件路径下创建如下图所示的文件和文件夹
image

6.总结

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

标签:文件,1.1,对象,创建,file,简单,File,目录
From: https://www.cnblogs.com/zaneblog/p/16618816.html

相关文章

  • kkfileview在线预览文件
    kkfileview在线预览码云下载地址:https://gitee.com/kekingcn/file-online-preview/releaseswindows版kkFileView-4.0.0.zip修改启动文件原:@echooffset"KKFILEVI......
  • PowerShell教程 - 文件系统管理(File System Management)
    更新记录转载请注明出处。2022年8月24日发布。2022年8月18日从笔记迁移到博客。文件系统管理(FileSystemManagement)文件类型说明与Linux不同,Windows下只有3种文......
  • IDEA2021.1.2版本使用Git解决代码冲突
    一、push时遇到冲突当前分支主管的推送被拒绝推送前需要合并远程更改   当前分支主管的推送被拒绝  推送前需要合并远程更改  当push时遇到冲突,要先pul......
  • 工厂模式-简单工厂
    publicinterfaceCar{Stringexcute();}publicclassBenchiCarimplementsCar{publicStringexcute(){System.out.println("奔驰车生产....");......
  • IDEA2021.1.2版本使用Git
    IDEA中类的颜色红色:工作区已修改并未添加到暂存区绿色:修改已经添加到暂存区暂未提交到版本库黑色|白色:版本库与工作区一致nothingtocommit,workingtreeclea......
  • 1089 狼人杀-简单版——20分
    以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1号玩家说:“2号是狼人”,2号玩家说:“3号是好人”,3号玩家说:“4......
  • 什么是ELK(小白简单快速的认识什么是ELK)
    今天继续给大家介绍Linux运维相关知识,本文主要内容是ELK的基本原理。一、ELK简介ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件......
  • leetcode 697. Degree of an Array 数组的度(简单)
    一、题目大意https://leetcode.cn/problems/degree-of-an-array给定一个非空且只包含非负数的整数数组nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的......
  • dockerfile deploy
    Failedtodeploy'baseDockerfile:Base/Dockerfile':java.lang.RuntimeException:com.fasterxml.jackson.databind.JsonMappingException:NullkeyforaMapnota......
  • SQLSerServer简单触发器同步Bak表
    USE[ITL]GO/******Object:Trigger[dbo].[TR_LMS_Interface_Order_INSERT]ScriptDate:2022/8/2317:16:48******/SETANSI_NULLSONGOSETQUOTED_IDENTIF......