资讯专栏INFORMATION COLUMN

JAVA IO源码学习系列一(OutputStream)

objc94 / 592人阅读

摘要:将指定数组中从偏移量开始的个字节写入此输出流。刷新此输出流并强制写出所有缓冲的输出字节关闭此输出流并释放与此流有关的所有系统资源。内容不多,召唤神兽

介绍 1. 输出流:OutputStream
之前的文章中介绍过了输入流的超类InputStream,这篇文章也简单的介绍一下与输入流相对的输出流;输入流我们之前说过,是将磁盘,文件,或者网络中的数据读取出来,(比如字节数组输入流将数据放到自己的缓冲数组中,然后就可以一个一个读取出来);而相对的对应输出流就要将指定的数据给写到磁盘,文件,或者网络。
2. OutputStream 源代码介绍

对于输出流的超类,最主要的就是写操作
对于写到什么地方,这个需要不同的子类去实现具体的write方法,后续介绍

public abstract class OutputStream implements Closeable, Flushable {
   
     //将指定的字节写入此输出流。
    public abstract void write(int b) throws IOException;

     //将 b.length 个字节从指定的 byte 数组写入此输出流。
    public void write(byte b[]) throws IOException {
        write(b, 0, b.length);
    }

  //将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
    public void write(byte b[], int off, int len) throws IOException {
        if (b == null) {
            throw new NullPointerException();
        } else if ((off < 0) || (off > b.length) || (len < 0) ||
                   ((off + len) > b.length) || ((off + len) < 0)) {
            throw new IndexOutOfBoundsException();
        } else if (len == 0) {
            return;
        }
        for (int i = 0 ; i < len ; i++) {
            write(b[off + i]);
        }
    }

    //刷新此输出流并强制写出所有缓冲的输出字节
    public void flush() throws IOException {
    }
    //关闭此输出流并释放与此流有关的所有系统资源。
    public void close() throws IOException {
    }
3. 内容不多,召唤神兽
/**
 *               ii.                                         ;9ABH,          
 *              SA391,                                    .r9GG35&G          
 *              &#ii13Gh;                               i3X31i;:,rB1         
 *              iMs,:,i5895,                         .5G91:,:;:s1:8A         
 *               33::::,,;5G5,                     ,58Si,,:::,sHX;iH1        
 *                Sr.,:;rs13BBX35hh11511h5Shhh5S3GAXS:.,,::,,1AG3i,GG        
 *                .G51S511sr;;iiiishS8G89Shsrrsh59S;.,,,,,..5A85Si,h8        
 *               :SB9s:,............................,,,.,,,SASh53h,1G.       
 *            .r18S;..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,.1H315199,rX,       
 *          ;S89s,..,,,,,,,,,,,,,,,,,,,,,,,....,,.......,,,;r1ShS8,;Xi       
 *        i55s:.........,,,,,,,,,,,,,,,,.,,,......,.....,,....r9&5.:X1       
 *       59;.....,.     .,,,,,,,,,,,...        .............,..:1;.:&s       
 *      s8,..;53S5S3s.   .,,,,,,,.,..      i15S5h1:.........,,,..,,:99       
 *      93.:39s:rSGB@A;  ..,,,,.....    .SG3hhh9G&BGi..,,,,,,,,,,,,.,83      
 *      G5.G8  9#@@@@@X. .,,,,,,.....  iA9,.S&B###@@Mr...,,,,,,,,..,.;Xh     
 *      Gs.X8 S@@@@@@@B:..,,,,,,,,,,. rA1 ,A@@@@@@@@@H:........,,,,,,.iX:    
 *     ;9. ,8A#@@@@@@#5,.,,,,,,,,,... 9A. 8@@@@@@@@@@M;    ....,,,,,,,,S8    
 *     X3    iS8XAHH8s.,,,,,,,,,,...,..58hH@@@@@@@@@Hs       ...,,,,,,,:Gs   
 *    r8,        ,,,...,,,,,,,,,,.....  ,h8XABMMHX3r.          .,,,,,,,.rX:  
 *   :9, .    .:,..,:;;;::,.,,,,,..          .,,.               ..,,,,,,.59  
 *  .Si      ,:.i8HBMMMMMB&5,....                    .            .,,,,,.sMr
 *  SS       :: h@@@@@@@@@@#; .                     ...  .         ..,,,,iM5
 *  91  .    ;:.,1&@@@@@@MXs.                            .          .,,:,:&S
 *  hS ....  .:;,,,i3MMS1;..,..... .  .     ...                     ..,:,.99
 *  ,8; ..... .,:,..,8Ms:;,,,...                                     .,::.83
 *   s&: ....  .sS553B@@HX3s;,.    .,;13h.                            .:::&1
 *    SXr  .  ...;s3G99XA&X88Shss11155hi.                             ,;:h&,
 *     iH8:  . ..   ,;iiii;,::,,,,,.                                 .;irHA  
 *      ,8X5;   .     .......                                       ,;iihS8Gi
 *         1831,                                                 .,;irrrrrs&@
 *           ;5A8r.                                            .:;iiiiirrss1H
 *             :X@H3s.......                                .,:;iii;iiiiirsrh
 *              r#h:;,...,,.. .,,:;;;;;:::,...              .:;;;;;;iiiirrss1
 *             ,M8 ..,....,.....,,::::::,,...         .     .,;;;iiiiiirss11h
 *             8B;.,,,,,,,.,.....          .           ..   .:;;;;iirrsss111h
 *            i@5,:::,,,,,,,,.... .                   . .:::;;;;;irrrss111111
 *            9Bi,:,,,,......                        ..r91;;;;;iirrsss1ss1111
 */

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68023.html

相关文章

  • JAVA IO源码学习系列(FilterInpuStream 和FilterOutputStrea

    摘要:源码内容过滤输出流的父类,继承自类似类本身只是简单地重写那些将所有请求传递给所包含输出流的的所有方法。的子类可进一步地重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。 介绍 根据名称就可以了解到过滤输入输出流是做什么用的,过滤,过滤是为了干嘛呢?前面我们介绍过了字节数组输入输出流,对于字节数组输入输出流,只提供了一些必要的读取, 写入标记等方法或功能,这些是最基础的,那么...

    Flink_China 评论0 收藏0
  • JAVA IO源码学习系列(ByteArrayOutputStream

    介绍 1. 输出流:ByteArrayOutputStream 上一篇简单介绍了输出流的超类OutputStream,也大概的讲述了输出流的作用,本篇就介绍一下,输出流的一种实现,字节数组输出流,该输出流是为了处理字节的基础流,本质上就是写入数据到类中的缓冲字节数组中; 2. ByteArrayOutputStream 源代码介绍 (1)属性内容:属性内容相较输入流的会有存放数据的缓冲区,也就是字...

    oujie 评论0 收藏0
  • SpringBoot文件上传异常之temporary upload location not val

    摘要:原文一灰灰之系列教程文件上传异常原理分析搭建的应用,一直工作得好好的,突然发现上传文件失败,提示目录非法,实际查看目录,结果还真没有,下面就这个问题的表现,分析下针对文件上传的处理过程问题分析堆栈分析问题定位,最佳的辅助手段就是堆栈 原文: 一灰灰Blog之Spring系列教程文件上传异常原理分析 SpringBoot搭建的应用,一直工作得好好的,突然发现上传文件失败,提示org.s...

    klinson 评论0 收藏0
  • 我的阿里之路+Java面经考点

    摘要:我的是忙碌的一年,从年初备战实习春招,年三十都在死磕源码,三月份经历了阿里五次面试,四月顺利收到实习。因为我心理很清楚,我的目标是阿里。所以在收到阿里之后的那晚,我重新规划了接下来的学习计划,将我的短期目标更新成拿下阿里转正。 我的2017是忙碌的一年,从年初备战实习春招,年三十都在死磕JDK源码,三月份经历了阿里五次面试,四月顺利收到实习offer。然后五月怀着忐忑的心情开始了蚂蚁金...

    姘搁『 评论0 收藏0
  • Java IO学习笔记二

    摘要:学习笔记二流的概念在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。主要功能是向文件中写入内容构造函数根据给定的对象构造一个对象。 Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来...

    ideaa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<