Java IO流 详解(字节流、字符流、输入流、输出流、刷新)

一、IO流概述

          I:Input输入  从其他存储设备【读】数据到内存中  输入过程
        O:OutPut输出  从内存中【写】数据到其他存储设备  输出过程

二、IO流分类

        1.根据数据的类型分为:

                【字节流】和【字符流】

                【字节流】:以字节为基本单位,读写数据的流
                            字节输入流:以字节为基本单位,读数据
                            字节输出流:以字节为基本单位,写出数据
                【字符流】:以字符为基本单位,读写数据的流
                            字符输入流:以字符为基本单位,读数据
                            字符输出流:以字符为基本单位,写出数据

        2.根据数据的流向分为:

                【输入流】和【输出流】

                【输入流】:把数据从 其他存储设备 上【读取】到 内存 中的流
                           字节输入流:以字节为基本单位,读数据
                           字符输入流:以字符为基本单位,读数据
                【输出流】:把数据从 内存 中【写出】到 其他 存储 设备中的流
                           字节输出流:以字节为基本单位,写出数据
                           字符输出流:以字符为基本单位,写出数据

        3.IO流的顶层父类

                - 字节输入流:顶层父类:InputStream --> 抽象类   常见子类:FileInputStream
                - 字节输出流:顶层父类:OutputStream --> 抽象类   常见子类:FileOutputStream
                - 字符输入流:顶层父类:Reader --> 抽象类   常见子类:FileReader
                - 字符输出流:顶层父类:Writer --> 抽象类   常见子类:FileWriter

 

三、字节输出流OutPutStream

        OutputStream 输出流顶层父类
            java.io.OutputStream抽象类是所有【字节输出流】的父类,用来【写】出字节输出流


            成员方法:

                - public void close():关闭次输出流并释放与此流相关联的任何系统资源
                - close方法,当完成流的操作时,必须调用此方法,释放系统资源,否则数据写入不完整或消失
                - public abstract void write(int b):将指定的字节写入输出流【一个字节一个字节写入到硬盘】
                - public void write(byte b[]):将 b.length字节从指定的字节数组写入到此输出流【以字节数组的形式写入到硬盘】
                - public void write(byte b[],int off, int len):将指定范围的字节数组的字节数据写到此输出流中【将字节数组中某一段字节数据写到硬盘】

           方法逐个演示:

                1.写出单个字节数据

        // 1.创建字节输出流对象  路径文件必须真实存在
        FileOutputStream fos1 = new FileOutputStream("day12_File类与递归&IO流&字符流&字节流\\resources\\a.txt");
        // 2.写出 单个字节的数据
        fos1.write(72);
        // 写入的一个字节数据,我们是往文本文档写入字节数据,但是因为是文本类型,需要将字节数据转换成文本数据,文本就是字符
        fos1.write(105);
        fos1.write(33);
        // 3.关闭流,释放资源
        fos1.close();

        (运行结束,会在对应的文件中生成对应的字节,代码中写入的数字为ASCII码,每个数字对应一个字母)

                 2.写出字节数组数据

        //1.创建字节输出流对象       真实存在的路径
        FileOutputStream fos1 = new FileOutputStream("day12_Fi

你可能感兴趣的:(Java语言进阶,java,IO流,经验分享,字符字节)