• 【JavaSE】文件操作篇(一)文件基础操作与IO流原理及分类


    💁 个人主页:黄小黄的博客主页
    ❤️ 支持我:👍 点赞 🌷 收藏 🤘关注
    🎏 格言:All miracles start from sometime somewhere, make it right now.
    本文来自专栏:JavaSE从入门到精通
    在这里插入图片描述


    1 文件

    1.1 文件流

    文件在程序中是以流的形式操作的,对于相关概念作以下说明:

    • 流:数据在数据源(文件)和程序(内存)之间经历的路径;
    • 输入流:数据从数据源(文件)到程序(内存)的路径;
    • 输出流:数据从程序(内存)到数据源(文件)的路径。

    示意图如下:
    在这里插入图片描述

    1.2 常用的文件操作

    🐦 创建文件对象相关构造器和方法:

    //1.构造器
    new File(String pathname)//根据路径构建一个File对象
    new File(File parent, String child)//根据父目录文件+子路径构建
    new File(String parent, String child)//根据父目录+子路径构建
    //2.方法
    createNewFile()//创建新文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    File类实现了Serializable与Comparable接口,可以进行串行化与比较。

    🐰 获取文件的相关信息:

    方法名说明
    getName()获取文件名称
    getAbsolutePath()获取绝对路径
    getParent()获取父级目录
    length()文件的大小,以字节数返回
    exists()是否存在该文件
    isFile()是否为文件
    isDirectory()是否为目录

    🐱 目录的操作和文件删除:

    方法名说明
    mkdir()创建一级目录
    mkdirs()创建多级目录
    delete()删除空目录或文件

    2 IO流原理及流的分类

    2.1 IO流原理

    1. I/O分别是Input与Output的缩写,用于处理数据传输,读写文件、网络通讯等;
    2. Java程序中,对于数据的输入输出以流的方式进行;
    3. java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过方法输入或输出数据;
    4. input表示输入:读取外部数据,即将磁盘、光盘等存储设备的数据读到程序(内存)中;
    5. output表示输出:将程序(内存)数据输出到磁盘、光盘等存储设备中。
      在这里插入图片描述

    2.2 流的分类

    • 按照操作数据单位的不同分为: 字节流(8bit),字符流(按字符);
    • 按照数据流向的不同分为: 输入流与输出流;
    • 按照流的角色不同分为: 节点流、处理流/包装流

    在这里插入图片描述
     在Java的IO流中涉及40多个类,实际上很规则,都是由 Reader、Writer、InputStream、OutputStream这4个抽象基类派生的。 而由这四个类派生出来的子类名称都是以其父类名作为子类名后缀的。
     从效率上看,理论上字符流应当比字节流效率高,但是,在实际使用上应用场景有区别。一般对于二进制文件,如图片、音频等,经常使用字节流,可以达到无损的效果;而对于文本文件等,常常使用字符流。


    写在最后

    🌟以上便是本文的全部内容啦,后续内容将会持续免费更新,如果文章对你有所帮助,麻烦动动小手点个赞 + 关注,非常感谢 ❤️ ❤️ ❤️ !
    如果有问题,欢迎私信或者评论区!
    在这里插入图片描述

    共勉:“你间歇性的努力和蒙混过日子,都是对之前努力的清零。”
    在这里插入图片描述

  • 相关阅读:
    JSD-2204-(业务逻辑开发)-发酷鲨商城front模块-开发购物车功能-Day09
    软考-网络信息安全概述
    RabbitMQ快速入门
    Api -- 连接世界的Super Star
    合并两个非降数组
    Oracle 修改Varchar2类型长度限制
    ElasticSearch-Mapping详解
    Kotlin协程最佳实践
    JAXB:根据Java文件生成XML schema文件
    SpringBoot实用开发篇第六章(整合第三方技术,ActiveMQ,RabbitMQ,RocketMQ,Kafka)
  • 原文地址:https://blog.csdn.net/m0_60353039/article/details/126743020