• 输入输出(I/O)流。


    为了记录所学的知识,就简单的进行描述,后续再补充。

    什么是字节流呢?
    字节流是基于二进制的万能流,对于任何类型的文件通过字节流都可以对其进行读写。字节流使用了装饰设计模式。

    字节流输入流(InputStream)结构图:

    字节输出流(OutputStream)结构图:

    什么是字符流:

    字符流只能够读取文本文件,不能够读取流媒体文件,但理论上读取的效率高于字节流的效率

    字符输入流结构图:

    字符输出流结构图:

    InputStreamReader 是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。每次调用InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

    为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:
    BufferedReader in = new BufferedReader(neInputStreamReader(System.in));

    OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。

    为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如:
     Writer out = new BufferedWriter(new OutputStreamWriter(System.out));

  • 相关阅读:
    JVM入门(一)
    2017目标
    2016目标
    C语言--第0次作业
    Hibernate ORM框架——续第一章:对象在Hibernate中的状态
    Hibernate ORM框架——续第一章:Java增删改查与Hibernate的增删改查的对比
    Hibernate ORM框架——续第一章:Hibernate的增删改查(第一个hibernate代码的优化)
    Hibernate ORM框架——第一章:Hibernate简介与操作基础
    改善SQL语句
    SQL Server的聚集索引和非聚集索引
  • 原文地址:https://www.cnblogs.com/javacatalina/p/6624265.html
Copyright © 2020-2023  润新知