美文网首页
Java IO类学习总结

Java IO类学习总结

作者: 测试你个头 | 来源:发表于2017-05-26 23:21 被阅读0次

刚好在看深入Java web技术内幕这本书,书里提到了Java IO,之前日常的工作中一直对各种IO类之间的关系理不清楚,正好趁此机会走读下源码做下总结

IO类

人类识别字符,机器识别字节,如果需要对字符进行机器间的传输,需要将字符向字节进行转化,Java针对2种数据格式,有不同的IO类:

  • 基于字节操作的IO接口:InputStream和OutputStream
    由于OutputStream和InputStream的相对关系,我们只讲InputStream
    InputStream 是所有字节输入类的基类,它的作用就是从输入源读取字节到内存
    类层次结构如下:
  • 基于字符操作的IO接口:Writer和Reader
    Reader 是所有字符输入类的基类,它的作用就是从输入源读取字符到内存
    类层次结构如下:

InputStream/Reader/InputStreamReader3者之间的关系:

1.InputStreamReader是字节流和字符流之间的桥梁,InputStreamReader继承了Reader类,InputStreamReader的注释如下:
An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified {@link java.nio.charset.Charset charset}. The charset that it uses may be specified by name or may be given explicitly, or the platform's default charset may be accepted.

2.更直白的理解:InputStreamReader将InputStream中读取的字节转换为字符,下面的代码将3者关系表现了出来:

        // 创建字节输入流
        FileInputStream fi = new FileInputStream("/Users/ali/10_python/get-pip.py");

        // 字节输入流向字符输入流转换
        InputStreamReader ir = new InputStreamReader(fi, "UTF-8");

        // 从InputStreamReader中读取到BufferedReader,实现高效的字符行读取
        BufferedReader br = new BufferedReader(ir);

        StringBuilder contentBuffer = new StringBuilder();
        String line = "";
        while ((line = br.readLine()) != null) {
            contentBuffer.append(line);
            System.out.println(line);
        }

相关文章

  • java io

    参考Java IO学习笔记(一):File类Java IO学习笔记(二):RandomAccessFile类Jav...

  • Java IO类学习总结

    刚好在看深入Java web技术内幕这本书,书里提到了Java IO,之前日常的工作中一直对各种IO类之间的关系理...

  • Java的IO & NIO

    IO流学习总结一Java IO,硬骨头也能变软二java IO体系的学习总结三Java IO面试题 NIO与AIO...

  • Java学习总结之Java IO系统(二)

    本文接着Java学习总结之Java IO系统(一),我们继续总结Java IO系统的相关知识。 字符流(Write...

  • 系统学习 Java IO (十三)----字符读写 Reader

    目录:系统学习 Java IO---- 目录,概览 Reader Reader 类是 Java IO API 中所...

  • JAVA IO基本知识

    本部分总结一下JAVA IO的相关知识。 全部章节传送门: JAVA IO学习笔记: IO基本知识 JAVA IO...

  • Java-I/O学习(7)

    Java-I/O学习(7) Reader 在Java API中,Java Reader类(java.io.Read...

  • Chapter 9 . Java IO

    阅读原文 Chapter 9 . Java IO 9.1 IO---File 类 java.io.File类:文件...

  • Java IO流的使用

    下面部分内容是参考Oubo的博客——Java IO流学习总结 Java流操作有关的类或者接口: 字符流和字节流 字...

  • 系统学习 Java IO (三)----File

    目录:系统学习 Java IO---- 目录,概览 Java IO API 中的 File 类可以访问基础文件系统...

网友评论

      本文标题:Java IO类学习总结

      本文链接:https://www.haomeiwen.com/subject/gcxffxtx.html