zoukankan      html  css  js  c++  java
  • 【Java基础系列】Java IO系统

    前言

    创建好的输入/输出系统不仅要考虑三种不同种类的IO系统(文件,控制台,网络连接)还需要通过大量不同的方式与他们通信(顺序,随机访问,二进制,字符,按行,按字等等)。

    一、输入和输出

    Java的IO类分割为输入和输出两个部分,从InputStream(输入流)衍生的所有类都拥有名为read()的基本方法,用于读取单个字节或者字节数组。同样,从OutputStream衍生的所有类都拥有基本方法write(),用于写入单个字节或者字节数组。但是通常我们不会用到这些方法,他们之所以存在是因为更复杂的类可以利用他们,以便提供一个更有用的接口。因此,我们很少用单个类创建自己的系统对象。一般情况下我们都将多个对象重叠在一起,提供自己期望的功能,我们之所以感到Java的流库非常复杂,就是因为为了创建单独一个结果流,却需要创建多个对象的缘故。

    1、InputStream类型

    InputStream的作用是标志哪些从不同起源地产生输入的类,这些起源地包括

    • 字节数组
    • String对象
    • 文件
    • 管道
    • 一系列其他流,以便我们将其统一收集到单独一个流内
    • 其他起源地:如internet连接等
    • FilterInputStream

    1)ByteArrayInputStream允许内存中的一个缓冲区作为InputStream使用,从中提取字节的缓冲区/作为一个数据源使用。通过将其同一个FilterInputStream对象连接,可提供一个有用的接口。

    2)StringBufferInputStream将一个String转换成InputStream一个String(字串)。基础的实施方案实际采用一个StringBuffer(字串缓冲)、作为一个数据源使用。通过将其同一个FilterInputStream对象连接可提供一个有用的接口。

    3)FileInputStream用于从文件读取信息,代表文件名中的一个String,或者一个File或FileDescription对象/作为一个数据源使用。通过将其通同一个FileInputStream对象连接,可提供一个有用的接口

    4)PipedInputStream产生为相关的PipedOutputStream写的数据,实现了管道化的概念

    5)PipedOutputStream作为一个数据源使用,通过将其通一个FilterInputStream对象连接,可提供一个有用的接口。

    6)SequenceInputStream将两个或更多的InputStream对象转换成单个InputStream使用,两个InputStream对象或者一个Enumeration,对于InpuStream对象的一个容器,作为一个数据源使用。通过将其同一个FilterInputStream对象连接,可提供有用的接口,

    2、OutputStream的类型

    这种类别决定了我们的输入往何处去:一个字节数组;一个文件;一个管道。

    1)ByteArrayOutputStream 在内存中创建一个缓冲区。我们发送给流的所有数据都会置入这个缓冲区。构造参数:可选缓冲区的初始大小。用于指出数据的目的地,若将其通FilterOutputStream对象连接到一起,可提供一个有用的接口。

    2)FileOutputStream:将信息发给一个文件,构造参数:用一个String代表文件名,或选用一个File或FileDescriptor对象, 用于指出数据的目的地,若将其通FilterOutputSTream对象连接到一起,可提供一个有用的接口。

    3)PipedOutputStream,我们写给它的任何信息都会自动成为相关的PipedInputStream的输出。实现管道化的概念,构造参数:PipedInputStream.为多线程处理指出自己数据的目的地。

    4)FilterOutputStream:对作为破坏器接口使用的类进行抽象处理。

  • 相关阅读:
    【模板】O(nlongn)求LIS
    【图论】用线段树写Dijikstra!!
    【图论】最短路总结
    【codeforces841A】Generous Kefa
    【模板】Tarjian求LCA
    【模板】 RMQ求区间最值
    【模板】map入门
    【二分 贪心】覆盖问题 BZOJ1052 HAOI2007
    【dp】10-15题解 snake vs block
    【模拟】10-15 题解 trans
  • 原文地址:https://www.cnblogs.com/dream-to-pku/p/7363369.html
Copyright © 2011-2022 走看看