zoukankan      html  css  js  c++  java
  • happy in java之io流简介

    闲来没事,重温马士兵老师的java基础。。。

    流  水流的流  流氓的流,,流 英文叫做stream,溪流

    流的分类:

    流是用来读写数据的。

    流就像水流一样,File类封装的是文件的名字,它是内存里头的一个对象,OK,但是真正的文件是在硬盘上的一块空间,在这文件里头,存着各种各样的数据,那么我们想读这数据怎么办呢?是这样来读,是通过一个流的方式来读。

    如下图,比方说这是我们文件,咱们要想从程序读数据,大家都知道,对于计算机来说,你读任何的数据都是什么样的形式,是不是都是010101 这些形式,对吧 。

    怎么样吧这些文件里边的内容个读出来,你就把这个文件想象成一个小桶。文件就是个桶,你怎么从桶里边取水呢?或者说怎么从文件里边取数据呢,常见的取法是这样的,我们弄一根管道怼到桶上,然后把这根管道,哐唧一怼怼到桶上边,这边打开水龙头,就开始出水,这就叫流,什么叫流,这根管道就叫流水流哗啦哗啦哗啦流出来了,这就叫流,java里头的输入输出,跟这个水流一模一样,当你要从文件取数据的时候,一根管道咣唧怼上去,然后就顺着这根管道,你开始往外读数据。

    你要往里头写数据呢?反过来,咣唧一根管道怼上去,从管道这一头开始咵唧咵唧往里头灌水。

    除了你可以从文件读写数据呢,你还可以从网络,比如这根管道咵唧从我机器上怼到你机器上了,我说一句话,你那边就收着了。你说一句话我这边就收着了。OK?

     有的时候一根管道不够使,比方说这根管道读过来的水,里有杂质,外边再包一层管道, 比方说你读过来的数据,最原始的数据肯定是010101,一个字节一个字节的往外读,当你这样读的时候你觉得这样的方法不合适,没关系。外边再包一层强大一点的管道,这个管道可以吧010101转换成字符串,哐当读出来,这个管道就包在了原始管道的外边, 这就是流式的输入输出,这些管道就是java的流。

    流的分类:

    根据不同的角度分成不同的类型,io包里头定义了所有的流。

    输入流or输出流的划分:都是站在程序打的角度来说的,相对于程序来说的。

    字节流or字符流:

          字节流:最原始的一个流, 读出来的数据就是010101,只不过是按照字节来读的,一个字节是8位。

          字符流:一个字符一个字符往外读,字符是2个字节。Java里边是Unicode字符串一个字符是2个字节。 Utf16  ok

    节点流or处理流:

          节点流:这根管道直接怼到数据源上的流。

          处理流:套在其他管道之上的流。

     凡是以Stream结尾的都是字节流,最原始的读取数据的方式,一个字节一个字节的读。

  • 相关阅读:
    PMP CMM
    PM过程的一些典型场景和问题
    PMP的六大管理学定律
    项目经理面试指南
    Sd
    Java 对象池实现
    Java 线程池的实现
    Sd
    Sd
    02.JSP的3个编译指令
  • 原文地址:https://www.cnblogs.com/lihaoyang/p/6917929.html
Copyright © 2011-2022 走看看