zoukankan      html  css  js  c++  java
  • 理解Java的IO 流

    按照流的流向来分,可以分为输入流和输出流:

    • 输入流:只能从中读取数据,而不能向其中写数据.
    • 输出流:只能向其写出数据,而不能从中读取数据

    .

    对于上面的左图来说,数据从内存到硬盘,通常我们称为输出流,也就是说,这里的输出,都是从程序运行所在的内存角度来划分的。对于右边的这张图来说,数据从服务器通过网路流向客户端,Server的内存负责将数据输出到网络里,因此Server端的程序使用的是输出流,Client端的内存负责从网路里读取数据,因此Client端的程序应该使用输入流.

    Java中的输入流 主要由InputStream 和Reader作为基类,而输出流主要由OutputStream和Writer作为基类。

    字节流和字符流 
    字节流和字符流所操作的数据单元不同:字节流操作的最小数据单元是8位的字节 (也是byte类型数据),而字符流操作的最小数据单元是16位的字符  (java使用16位的Unicode编码级作为编码方式)

    字节流主要由InputStream 和OutputStream作为基类,而字符流主要由Reader和Writer作为基类。

    节点流和处理流

    节点流:可以从一个特定的IO设备(如磁盘、网路)读/写数据的流,成为节点流,节点流通常也被成为低级流;使用节点流进行输入输出时 ,程序直接连接到实际的数据源,和实际的输入、输出节点连接.下图显示了节点流的示意图:

    处理流:对一个已存在的流进行连接或封装,通过封装后的流来实现数据的读写功能.处理流也成为高级流.使用处理流的一个明显好处就是:只要使用相同的处理流,程序就可以采用完全相同的输入、输出代码来访问不同的数据源,随着处理流所包装节点流的改变,程序实际所访问的数据源也相应发生改变.下图示范了处理流的过程.

    以上是关于IO流的一些基本情况的说明,理解上面的知识,对继续学习IO流,起着至关重要的作用,不然你到后面会晕的.

     

  • 相关阅读:
    青岛理工大学邀请赛总结
    HDU 1232 并查集/dfs
    HDU 1556
    HDU 5228
    POJ1011
    线段树(数组实现)
    NOIP2008 普及组T1 ISBN号码 解题报告-S.B.S.
    NOIP2008 普及组T4 立体图 解题报告-S.B.S.(施工未完成)
    noip2008普及组4题题解-rLq
    noip2008普及组3题题解-rLq
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300438.html
Copyright © 2011-2022 走看看