zoukankan      html  css  js  c++  java
  • Java I/O

    Java中I/O操作主要是指使用Java进行输入、输出操作。

    Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。

    数据流是一串连续不断的数据的集合,就像水管里的水流,在水管的一端一点一点的供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段、一段的向数据流管道中写入数据,这些数据会按照先后顺序形成一个长的数据流。对数据读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但是只能先读取前面的数据后,在读取后面的数据,不能随机读取。不论写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。

    简而言之:数据流是一组有序的,有起点和终点的字节数据序列,包括输入流和输出流。

    当程序需要读取数据的时候,就会建立一个通向数据源的连接,这个数据源可以是文件、内存、网络连接等。类似的,当程序需要写入数据的时候,就会建立一个通向目的地的连接。

    数据流的分类

    数据流序列中的数据既可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种格式规则的特定数据。因此,Java中的数据流分为两种:

    1. 字节流  数据流中最小的数据单元是字节

    2. 字符流  数据流中最小的数据单元是字符

    Java 中的字符是Unicode编码的,一个字符占用两个字节。

    概览

    Java.io 包几乎包含了所有操作输入、输出重要的类。所有这些流类代表了输入源和输出目标。

    Java.io 中最重要的就是5个类和1个接口。

    5个类:

    1. File:文件特征与管理,用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

    2. OutputStream:抽象类,字节流,二进制格式操作,基于字节的输入操作。是所有输入流的父类,定义了所有输入流都具有的共同特征。

    3. InputStream:抽象类,字节流,二进制格式操作,基于字节的输出操作。是所有输出流的父类,定义了所有输出流都具有的共同特征。

    4. Writer:抽象类,字符流,文本文本格式操作,基于字符的输出操作。

    5. Reader:抽象类,字符流,文本格式操作,基于字符的输入操作操作。

    6. RandomAccessFile:随机文件操作,可以从文件的任意位置进行存取操作。

    1个接口:

    1. Serializable

    Java I/O 主要包括如下3个层次

    1. 流式部分,最主要的部分,如 InputStream, OutputStream, Reader, Writer 等

    2. 非流式部分, 如 File, RandomAccessFile, FileDescriptor 等

    3. 其他文件读取部分的与安全相关的类,以及与本地操作系统相关的文件系统的类。

    按照来源/去向分类

    1. File(文件):FileInputStream, FileOutputStream, FileReader, FileWriter

    2. byte []:ByteArrayInputStream, ByteArrayOutputStream

    3. Char []:CharArrayReader, CharArrayWriter

    4. String:StringBufferInputStream, StringReader, StringWriter

    5. 网络数据流:InputStream, OutputStream, Reader, Writer

     参考:

     http://www.importnew.com/23708.html

  • 相关阅读:
    三范式
    SVN
    docker镜像文件的导入与导出(docker镜像迁移)
    OpenStack镜像服务基本操作
    keystone认证服务
    OpenStack存储(单节点)
    OpenStack单节点制作镜像
    清除OpenStack网络与路由
    制作OpenStack云平台centos6.5镜像
    OpenStack单节点网络设置
  • 原文地址:https://www.cnblogs.com/0820LL/p/9559100.html
Copyright © 2011-2022 走看看