美文网首页
java IO核心类库梳理

java IO核心类库梳理

作者: 一路花开_8fab | 来源:发表于2018-06-10 09:49 被阅读0次

以前每次使用java I/0类库时都要搜索,今天梳理了一下,把I/O核心类串了起来

流代表任何有能力产生数据的数据源对象或者是有能力接收数据的接收端对象。“流”屏蔽了IO设备中处理数据的细节。任何自InputStream或Reader派生而来的类都含有read()方法,用于读取单个字节或字节数组。同样,任何自OutputStream或Writer派生而来的类都含有write()方法,用于写取单个字节或字节数组。

1. InputStream/OutputStream继承结构仅支持8位字节流

在某些场合,面向字节的InputStream和OutputStream是合适的解决方案,比如java.util.zip就是面向字节而不是面向字符的。

2. Reader/Writer继承结构提供兼容Unicode与面向字符的I/O功能

3.InputStreamReader/OutputStreamWriter是字节流和字符流转换的桥梁

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.
An OutputStreamWriter is a bridge from character streams to byte streams:Characters written to it are encoded into bytes 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.

字节流和字符流转换需要提供编码格式(若不提供,由平台决定默认的编码格式),使用时需注意。

/**
     * Returns the default charset of this Java virtual machine.
     *
     * <p> The default charset is determined during virtual-machine startup and
     * typically depends upon the locale and charset of the underlying
     * operating system.
     *
     * @return  A charset object for the default charset
     *
     * @since 1.5
     */
    public static Charset defaultCharset() {
        if (defaultCharset == null) {
            synchronized (Charset.class) {
                String csn = AccessController.doPrivileged(
                    new GetPropertyAction("file.encoding"));
                Charset cs = lookup(csn);
                if (cs != null)
                    defaultCharset = cs;
                else
                    defaultCharset = forName("UTF-8");
            }
        }
        return defaultCharset;
    }

相关文章

  • java IO核心类库梳理

    以前每次使用java I/0类库时都要搜索,今天梳理了一下,把I/O核心类串了起来 流代表任何有能力产生数据的数据...

  • Java IO流 个人总结

    Java流类图结构 描述: Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。J...

  • JavaSE知识点15java输入输出流详解

    1 什么是IO? 1 Java的IO机制有流IO和块IO两种,核心库 java.io是大多数面向数据流的IO类的主...

  • 一文带你精通Java I/O流,分分钟吊打面试官!

    Java IO概述 IO就是输入/输出。Java IO类库基于抽象基础类InputStream和OutputStr...

  • Java网络编程:Netty框架学习(二)---Java NIO

    概述 上篇中已经讲到Java中的NIO类库,Java中也称New IO,类库的目标就是要让Java支持非阻塞IO,...

  • Hello Java

    目录 Java-基础(1/6) Java-对象(2/6) Java-核心库类 上(3/6) Java-核心库类下(...

  • 从源码设计角度理解Java IO

    概述 Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基...

  • java io

    java io主要有5个核心类和一个核心接口: 五个核心类:File、InputStream、OutputStre...

  • Java I/O

    Java 的 I/O 库分为以 streams 为核心的 java.io 和以 buffers 和 channel...

  • Java知识梳理四

    一、Java中的文件复制 1.Java IO实现文件复制 利用java.io类库,直接为源文件构建一个Fil...

网友评论

      本文标题:java IO核心类库梳理

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