zoukankan      html  css  js  c++  java
  • javaIo

    直接在源代码中f4 或者 Ctrl + t 查看继承结构

    1. JavaIO类。

    文件:
    File、RandomAccessFile
    流:
    字节流:InputStream、outputStream ;字符流:Reader、 Writer;(如下图

    java IO类

    2. 总的类

    字节流和字符流:

    字节流和字符流

    装饰器:给流加上特性,比如缓存什么的
    适配器:将字节流转换为字符流

    3. 详解


    输入装饰流
    FilterInputStream是装饰流;是BufferedInputStream和DataInputStream的超类。
    DataInputStream 是数据输入流。它是用来装饰其它输入流,它“允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型”。
    BufferedInputStream 是缓冲输入流。它的作用是为另一个输入流添加缓冲功能。


    输出装饰流

    1. FilterOutputStream 是过滤输出流。它是DataOutputStream,BufferedOutputStream和PrintStream的超类。
    2. DataOutputStream 是数据输出流。它是用来装饰其它输出流,它“允许应用程序以与机器无关方式向底层写入基本 Java 数据类型”。
    3. BufferedOutputStream 是缓冲输出流。它的作用是为另一个输出流添加缓冲功能。
    4. PrintStream (装饰流)是打印输出流。它是用来装饰其它输出流,能为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。

    字符流


    输入适配流
    字节转字符

    1. BufferedReader 是字符缓冲输入流。它的作用是为另一个输入流添加缓冲功能。
    2. InputStreamReader 是字节转字符的输入流。它是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。


    输出适配流

    1. BufferedWriter 是字符缓冲输出流。它的作用是为另一个输出流添加缓冲功能。
    2. OutputStreamWriter 是字节转字符的输出流。它是字节流通向字符流的桥梁:它使用指定的 charset 将字节转换为字符并写入。
    3. FileWriter 是字符类型的文件输出流。它通常用于对文件进行读取操作。
    4. PrintWriter (装饰流)是字符类型的打印输出流。它是用来装饰其它输出流,能为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。

    4.对应关系

    字节流(输入和输出对应的关系)


    字节流输入和输出对应关系

    字符流(输入和输出对应的关系)

    5【字符流和字节流之间的关系

    流程

    通过三个明确来完成。

    1,明确源和目的。

    源:输入流。InputStream Reader

    目的:输出流。OutputStream Writer。

    2,操作的数据是否是纯文本。

    是:字符流。 不是:字节流。

    3,当体系明确后,在明确要使用哪个具体的对象。

    通过设备来进行区分:

    源设备:内存,硬盘。键盘

    目的设备:内存,硬盘,控制台。

    分析过程示例:

    将一个文本文件中数据存储到另一个文件中。复制文件。

    源:因为是源,所以使用读取流。InputStream Reader

    是不是操作文本文件。

    是!这时就可以选择Reader

    这样体系就明确了。

    接下来明确要使用该体系中的哪个对象。

    明确设备:硬盘。上一个文件。

    Reader体系中可以操作文件的对象是 FileReader

    是否需要提高效率:是!。加入Reader体系中缓冲区 BufferedReader.

    FileReader fr = new FileReader("a.txt");
    BufferedReader bufr = new BufferedReader(fr); 
    

    目的:OutputStream Writer

    是否是纯文本。

    是!Writer。

    设备:硬盘,一个文件。

    Writer体系中可以操作文件的对象FileWriter。

    是否需要提高效率:是!。加入Writer体系中缓冲区 BufferedWriter

    FileWriter fw = new FileWriter("b.txt");
    BufferedWriter bufw = new BufferedWriter(fw);
    

    参考来源:

    1. http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html
    2. http://www.cnblogs.com/skywang12345/p/io_01.html
    3. http://www.cnblogs.com/runwind/p/4212178.html
  • 相关阅读:
    石头剪刀布技巧+个人经验总结
    能让你聪明的工作DEAL四法则,来自《每周工作四小时》书籍
    开发软件名称简写定义表
    罗永浩简历(自荐新东方的简历)
    感人微电影 《健康树》金赫及作品简介
    陈寅恪
    中国朝代顺序表
    Loading...加载图收集
    KeyBoardUtils.java——android键盘工具类
    LogUtils.java
  • 原文地址:https://www.cnblogs.com/wangbiwei/p/6399732.html
Copyright © 2011-2022 走看看