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:对作为破坏器接口使用的类进行抽象处理。

  • 相关阅读:
    浅谈ruby中的block及yield
    Node.js使用TCP通讯
    JavaScript垃圾回收机制
    node.js的Promise库-bluebird示例
    使用pkg打包Node.js应用的方法步骤
    windows server 2012 安装 VC14(VC2015) 安装失败解决方案
    pm2命令,端口查询,mongodb服务启动,nginx服务启动,n模块的使用,搭建nodejs服务器环境,搭建oracledb服务器环境 linux的环境搭建
    linux+node.js+redis+mongodb+nginx环境的搭建
    nginx.exe启动错误:bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
    windows下nginx的安装及使用
  • 原文地址:https://www.cnblogs.com/dream-to-pku/p/7363369.html
Copyright © 2011-2022 走看看