• 17_星仔带你学Java之IO操作①


    大家好,我是💖星仔💖。一个致力于为大家分享各种Java知识的博主。

    ✨专栏汇总✨

            🍋《星仔带你部署银河麒麟RAM架构服务器》

            🍋《星仔带你学消息队列(RebbitMQ)》

            🍋《星仔带你学Java》

            🍋《星仔带你学Elasticsearch》

            🍋《星仔带你搞定Java开发小技巧》

            🍋《星仔带你学Java设计模式》

            🍋《星仔带你搞定【软考-系统架构设计师】》

            🍋《星仔带你玩转Java面试》

        本博客收录于《华星详谈-学习中心》。本学习中心收集了Java整个技术体系的所有技术要点。每篇博客后面或者知识点结尾都附带有面试题,提供给大家巩固本章内容。

    为各位同胞们能够系统性的掌握整个Java技术体系而建立的学习中心。星仔正在努力的更新学习中心中的内容。望诸君共勉!!!

    🍋一、输入和输出(IO)概述

    🍒1.1 概述

    什么是IO(Input/Output):输入和输出;

    IO设备:和电脑通信的设备;

    输入设备:麦克风扫描器键盘鼠标等;

    输出设备显示器打印机投影仪耳机音响等;

            IO操作是一个相对的过程,一般的我们在程序角度来思考(程序的内存)。程序需要数据,即把数据流入到程序中(输入);程序需要保存数据,把数据传递给别人输出)。

    IO操作的示意图:我们可以把IO的操作和生活中的水流联系起来。

    🍒1.2 IO流的分类

    IO流的分类:站在不同的角度,分类方式是不一样的

            1)、根据流向划分:输入流和输出流;

            2)、根据数据的单位划分字节流和字符流;

            3)、根据功能的划分节点流和包装流; 

            四大基流:字节输出流字节输入流字符输出流字符输入流。四大基流都是抽象类,其他流都是继承于这四大基流的;我们不能创建四大基流的对象只能创建其子类对象。其中需要注意的是无论是什么流,其都有close方法,用来关闭资源,使用的都是java.io包中的类

           如果操作文件就得开通一个流对象关联我们的磁盘文件如果不关闭资源,那么磁盘的文件一直被程序所引用着不能删除,也不能更改

    🍒1.3 操作IO流的模板:

    1)、创建源或者目标对象

         拿文件流举例

         输入操作:    把文件中的数据流向到程序中此时文件是源程序是目标;

         输出操作:    把程序中的数据流向到文件中此时文件是目标程序是源;

    2)、创建IO流对象

         输入操作:     创建输入流对象;

         输出操作:     创建输出流对象;

    3)、具体的IO操作

         输入操作:    输入流对象的read方法;

         输出操作:    输出流对象的write方法;

    4)、关闭资源 一旦资源关闭之后就不能使用流对象了,否则会报错

         输入操作:    输入流对象.close();

         输出操作:    输出流对象.close().

    操作IO流的六字箴言:读进来,写出去

           读进来进来强调了是输入读说明是read方法;

           写出去:   出去强调了是输出写说明是write方法;

    🍋二、文件流

    🍒2.1 文件流概述以及简单的使用

    文件流:顾名思义就是程序和文件打交道。

    FileInputStream:     文件的字节输入流

    FileOutputStream:  文件的字节输出流

    FileReader:文件的字符输入流

    FileWriter:文件的字符输出流

     

    🍒2.2 文件拷贝操作

    文件流拷贝的大致流程图:

    实际操作: 

    🍒2.3 资源的正确关闭

            我们在在每一次的使用流之后都要进行关闭流,如下代码:

            但是这样关闭流一个是会使代码的阅读性变差,二个就是个人觉得比较恶心。其实在Java7中,已经为我们考虑到了这个问题,此时我们只需要对代码进行如下的修改就可以使用Java7提供的自动关闭资源方法。如下代码:

  • 相关阅读:
    java---Stream流
    多目标跟踪框架boxmot介绍
    下载git
    ScalaLearning从入门到神坑
    C++学习笔记(三十三)
    char 和 varcha 的区别是什么
    【c++】模拟实现优先级队列(priority_queue)
    某猫投诉app逆向 【一鱼多吃app逆向】
    五个超级实用的Python小技巧
    Spark本地模式和集群模式安装配置
  • 原文地址:https://blog.csdn.net/a767815662/article/details/125470798