• java io 输入输出流


    数据流分类:

    流序列中的数据既可以是未经加工的原始二进制数据,

    也可以是经一定编码处理后符合某种格式规定的特定数据。

    因此Java中的流分为两种:
    1) 字节流:数据流中最小的数据单元是字节
    2) 字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。

    主要的类如下:
    1. File(文件管理):如生成新目录,修改文件名,删除文件,判断文件所在路径等。
    2. InputStream(二进制操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征
    3. OutputStream(二进制操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。

    4. Reader(文件格式操作):抽象类,基于字符的输入操作。
    5. Writer(文件格式操作):抽象类,基于字符的输出操作。
    6. RandomAccessFile(随机文件操作):它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。
    Java中IO流的体系结构如图:

    一、按I/O类型来总体分类:

    1. Memory

    1)从/向 内存 数组读写数据: CharArrayReader、 CharArrayWriter、ByteArrayInputStream、ByteArrayOutputStream
    2)从/向 内存 字符串读写数据 StringReader、StringWriter、StringBufferInputStream
    2.Pipe管道 实现管道的输入和输出(进程间通信): PipedReader、PipedWriter、PipedInputStream、PipedOutputStream
    3.File 文件流。对文件进行读、写操作 :FileReader、FileWriter、FileInputStream、FileOutputStream
    4. ObjectSerialization 对象输入、输出 :ObjectInputStream、ObjectOutputStream
    5.DataConversion数据流 按基本数据类型读、写(处理的数据是Java的基本类型(如布尔型,字节,整数和浮点数)):DataInputStream、DataOutputStream
    6.Printing 包含方便的打印方法 :PrintWriter、PrintStream
    7.Buffering缓冲 在读入或写出时,对数据进行缓存,以减少I/O的次数BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream
    8.Filtering 滤流,在数据进行读或写时进行过滤:FilterReader、FilterWriter、FilterInputStream、FilterOutputStream过
    9.Concatenation合并输入 把多个输入流连接成一个输入流 :SequenceInputStream

    10.Counting计数 在读入数据时对行记数 :LineNumberReader、LineNumberInputStream
    11.Peeking Ahead 通过缓存机制,进行预读 :PushbackReader、PushbackInputStream
    12.Converting between Bytes and Characters 按照一定的编码/解码标准将字节流转换为字符流,或进行反向转换(Stream到Reader,Writer的转换类):InputStreamReader、OutputStreamWriter

     1. InputStream抽象类 

    主要的子类:

            

            1) FileInputStream把一个文件作为InputStream,实现对文件的读取操作     
        2) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用 
        3) StringBufferInputStream:把一个String对象作为InputStream 
        4) PipedInputStream:实现了pipe的概念,主要在线程中使用 
        5) SequenceInputStream:把多个InputStream合并为一个InputStream 

    http://blog.csdn.net/hguisu/article/details/7418161

  • 相关阅读:
    Ubuntu安装mysql
    Java源码分析:关于 HashMap 1.8 的重大更新(转载)
    idea 设置光标回到上一次位置的快捷键
    2016年总结及2017年计划
    Mac搭建Hadoop源码阅读环境
    Spark sql 在yarn-cluster模式下找不到表
    SecureCRT 无法删除字符
    Flume整合Spark Streaming
    Hbase资料汇总
    maven使用阿里云仓库
  • 原文地址:https://www.cnblogs.com/nulisaonian/p/6130441.html
Copyright © 2020-2023  润新知