IO文件类(File)的学习(java.io.File)

本文详细介绍了Java中的File类,包括IO概述、构造方法、创建文件夹、创建文件、迁移并重命名文件,以及系统不同的分隔符。特别强调了如何在不同操作系统下处理文件,以及如何创建和隐藏文件夹,对程序员尤其是有女朋友的程序员有实用价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

注意了各位,这次的内容对男性同胞很重要,尤其是那些有女朋友的男性同胞。你不要以为这只是一个分享学习知识的博客,它关乎着你们的身心幸福问题,为什么呢?让我们先学习一下什么是IO文件,再往下逐层剖析,当然,如果你急不可耐想要直接知道,可跳到IO文件遍历的内容。


IO概述

那说到文件,就一定要提及IO,那IO是什么呢?

public class Demo {
    /**
     * IO流概述
     *  可以将这种数据传输操作,看做一种数据的流动 , 按照流动的方向分为输入Input和输出Output
     *  Java中的IO操作主要指的是 java.io包下的一些常用类的使用,
     * 通过这些常用类对数据进行读取(输入Input) 和 写出(输出Output)
     *
     * IO流的分类:
     *  按照流的方向来分,可以分为:输入流和输出流.
     *  按照流动的数据类型来分,可以分为:字节流和字符流
     *
     *     字节流:
     *          -   输入流 :   InputStream
     *          -   输出流 :   OutputStream
     *     字符流:
     *          -   输入流 :   Reader
     *          -   输出流 :   Writer
     *
     *
     * 一切皆字节:
     *      计算机中的任何数据(文本,图片,视频,音乐等等)都是以二进制的形式存储的.
     *      在数据传输时 也都是以二进制的形式存储的.
     *      后续学习的任何流 , 在传输时底层都是二进制.
     * @param args
     */
    public static void main(String[] args) throws FileNotFoundException {


    }

构造方法

那我们继续看看File类中的构造方法有哪些?请添加图片描述
好,我们主要是注重前三个就好了,这前三个构造方法讲述的是什么呢?,说的是创建一个File对象,那这个对象又是用来干什么的呢?,这还用说,当然是藏一些文件啦。男人都经历过那个时代
好,接着说,那我们就可以通过源码来向大家描述一下这个File构造方法的神奇之处!

请添加图片描述

public class Demo2 {
    public static void main(String[] args) throws IOException {
        File file = new File("D://1.text");
        boolean flag = file.createNewFile();
        System.out.println(flag?"创建成功":"创建失败");
        }
}

注意看这段代码,逻辑很简单,但是展示的效果,以及影响是深远的。注意:我建立的D盘,为什么我不创建在C盘,原因有二,一是C盘系统文件复杂,到时候创建完删除出了岔子会很麻烦,之后我也会说这一点;其二,那就是我如果创建C盘会显示拒接访问,大家可以试一试,这是因为我们的C盘是系统盘,如果你有安装了杀毒软件,像360安全卫士啊,火绒啊,这类的,它会自动阻止你访问C盘,当然也建议大家在练习的时候不要在C盘中进行,换个D盘不就行了。
请添加图片描述好了,回到我们的源码创建,那这次创建我们可以看到:

请添加图片描述
它创建了一个文件,很神奇对不对,那它有什么用呢?这还用我说,让我们接着往下学习。

创建文件夹

//衔接上文
		File dir = new File("D://1.text");
        dir.mkdir();//创建单层文件夹
        File dir2 = new File("D://a/a/a/a");
        dir2.mkdirs();//创建多层文件夹文件夹

想要API的链接:最新版API JDK11版本中文释义
那我们来看一下API,创建文件夹的方法。
花红线的都是重点,
请添加图片描述
首先我们可以看到,最上面的几个红线是可以去判断你系统中的文件是什么样的文件,,什么目录,绝对路径等,这可不要让女朋友知道,这是重点,那最重要其实是最后3个,也是我源码进行测试的内容,所属也是创建的。那经过测试,很显然,我特意将其设置为1.text,但它是个文件夹,那下面这个az则是多层文件夹,大家可以下去自行测试,我就不演示了。

请添加图片描述

创建文件

接下来就是往里面填充内容了。

		File dir = new File("D://1.text");
        dir.mkdir();//创建单层文件夹
        File dir2 = new File("D://a/a/a/a");
        dir2.mkdirs();//创建多层文件夹文件夹

        File a = new File(dir,"a.txt");
        a.createNewFile();
        //a.delete();
        //File b = new File("D://创建的新文件夹","b.txt");
        //b.createNewFile();
       // b.delete();

在这里插入图片描述
我们可以清晰的看到,我在之前的1.text文件下创建了一个a.txt文件,用的是createNewFile()方法,同样的下面被注释的b是另一种创建方法。
在这里插入图片描述而文件对象名.delete();可直接对其删除。,这个我就不再演示,大家自行练习。

迁移文件并重命名

//衔接上文
		File dir = new File("D://2.text");
        dir.mkdir();
        File file = new File("D://2.text/a.txt");
        boolean flag = file.createNewFile();
        System.out.println(flag?"创建成功":"创建失败");
        //File newFile = new File("D:\\1.text\\转移.txt");
        //file.renameTo(newFile);//转移文件位置并重命名

那我是首先创建一个新文件夹和文件然后再对其迁移,并重命名。我们看到
在这里插入图片描述在这里插入图片描述
之后我们将注释去掉重新运行,我们可以找到我们的D盘的2.text文件夹下已经没有了文件,而1.text文件夹下出现了。,这里的迁移.txt就是我们之前的a.txt了。
在这里插入图片描述==重点啊,兄弟们,转移文件,神不知鬼不觉啊,你可以创建一个隐藏文件夹,然后放到里面啊,谁能发现啊!女朋友都不行。==啊,这时候又有人说了,那怎么创建一个隐藏文件夹啊?,这还用我说吗,直接问度娘啊?好吧我这里也罢链接给大家:如果用file创建一个隐藏文件夹。那既然说到这里了我们不去试一试让大家看看效果怎么行呢,我们为了方便查找,创建一个名为:1(隐藏文件夹)的文件夹,然后我们再往里面添加数据试试。

//还是原来的代码
		File dir = new File("D://1(隐藏文件夹)");
        dir.mkdir();
        File file = new File("D://1(隐藏文件夹)/隐藏文件.txt");
        boolean flag = file.createNewFile();
        System.out.println(flag?"创建成功":"创建失败");

很明显啊!创建成功。
在这里插入图片描述那我们找到D盘我们的隐藏文件夹,
在这里插入图片描述哎,首先我们可以看到,没有这个文件夹,按理来说,它为1字头的,应该在最上面的。那我们吧上面的查看中的显示/隐藏中的隐藏的项目给勾选上,之后再去看看。
在这里插入图片描述它出来了,那我们再去看看里面的内容,

在这里插入图片描述
嘿嘿嘿,同志们,怎么样,其实大家学习到这里已经可以去与女朋友斗智斗勇了,没有的也可以更好的隐藏我们的文件不是。

系统不同的分隔符

对了,穿插一点,有可能由于大家使用的系统不一样,我们上面的分隔符会没有用,那java也给我们提供了默认的分隔符。
在这里插入图片描述

//衔接上文
 		System.out.println(File.pathSeparator);//;系统提供路径分隔符---Linux系统的是 :
        System.out.println(File.separator);// \系统提供名称分隔符---Linux系统的是 /

运行结果如下:
在这里插入图片描述

文件遍历案例(不能让女朋友知道)

好,我们来到文件遍历,这也是重点中的重点,最主要的是不要让你们的女朋友知道这个方法。
那我们再次贴上这张图来方便大家的学习。
请添加图片描述

/**
 * 文件遍历案例
 */
public class Demo4 {
    public static void main(String[] args) {
        File d = new File("C:\\Users");//创建File对象,并指定查询路径
        File[] files = d.listFiles();
        listFile(files);//查找文件
    }
    public static void listFile(File[] files){
        if(files!=null&&files.length>0){//判断文件存在与否
            for (File file:files) {//采用增强for循环遍历
                if(file.isFile()){//判断文件是否是文件
                    //文件
                    if(file.getName().endsWith(".zip")){
                    //获取文件明后缀,可随意定义
                    //如:txt,zip,avi,mp4等等
                        if(file.length()>100*1024*1024){
                            //file.delete();//删除文件
                            //System.out.println(file.getAbsolutePath()+"已删除");
                        }
                        //判断字节长度,1024字节-1kb->1024kb-1MB->1024MB-1GB
                        //遍历查找文件
                        System.out.println("找到了一个png文件"+file.getAbsolutePath());
                    }
                }else {
                    //文件夹
                    File[] files2 = file.listFiles();
                    listFile(files2);
                }
            }
        }
    }
}

假如我找的是图片文件,这是运行时的结果,果然不出我所料,没有什么违法的东西,啊那你们的盘内有没有围巾的东西我就不确定了啊。
在这里插入图片描述


总结

那到这里也就告一段落了,对于IO文件类的初步学习就是这样了。那如果大家学习过之后有收获呢,有的话能不能点个赞,评论一下,关注我呢。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少年,又是你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值