美文网首页
字符流和字节流

字符流和字节流

作者: 海是倒过来的天_67f2 | 来源:发表于2018-08-07 12:14 被阅读0次

    https://blog.csdn.net/axi295309066/article/details/52820203

    https://www.zhihu.com/question/39262026

    https://blog.csdn.net/kunfd/article/details/52463672

    https://www.cnblogs.com/absfree/p/5415092.html

    1.流的概念

    流(Stream)的概念源于Unix中管道(pipe)的概念.在Unix中,管道是一条不间断的字节流,用以实现程序或者进程间的通信,或读写外围设备,外部文件等。

    流必定有源端和目的端,有流向。根据流向可将流分为两类:输入流和输出流。用户可以从输入流中读取信息,但是不能写入;相反对于输出流,只能输入写入,而不能读取。

    2.IO流的概述

    键盘的输入数据,显示器中的展示运行结果等等,都是社保之间的数据传输。在Java中将这种通过不同输入输出设备(键盘,显示器,内存等等)之间的数据传输抽象的称之为"流"。程序允许数据以流的方式在输入设备和输出设备之间进行数据传输。Java中的流都位于Java.io包下,称之为IO(输入输出)流。IO流既InputOutput的缩写。

    将外设中的数据读取到内存中称之为输入;将内存中的数据写入外设中称之为输出。

    IO流的特点:

    IO流用来处理设备之间的数据传输;

    Java对数据的操作是通过流的方式;

    Java用于操作流的对象都在IO包下;

    流按照操作数据分为两类:字节流和字符流

    流按照流向分为:输入流和输出流

    流只能操作数据,而不能操作文件

    3.流的三种分类方式

    按照流向:输入流和输出流

    按照数据单位:字节流和字符流

    按照流的功能:字节流和处理流

    4. 字符流和字节流的大小

    “字符(Byte)"和"字节(Character)”的大小:

    1 byte = 8 bit

    1 char = 2 byte = 16 bit (Java默认UTF-16编码)

    1bit是数据中最小的单位,但是1bit所含有的信息量太少了,要表示一个有用的信息,需要好几bit来表示。因此除了硬件层面存在1bit比特位的寄存器之外,大多数情况下,字节是数据最小的基本单位。我们所熟知的8bit就是一个字节

    boolean : 1 byte

    char : 2 byte

    short: 2 byte

    int: 4 byte

    float : 4 byte

    long : 8 byte

    double : 8 byte

    5流的层次结构

    IO流的常用基类:

    字节流的抽象基类:InputStream和OutputStream

    字符流的抽象基类:Reader和Writer

    这四个基类派生出的子类都是以父类为后缀,以前缀为其功能;如InputStream的子类FileInputStream,Reader的子类FileReader。

    字符流的由来:字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的文字。在对这个文字进行操作

    既: 字符流 = 字节流+编码表

    区别

    字节流就是普通的二进制数据流,读出来的是bit

    字符流在在字节流的基础上按照字符编码处理,处理的是char

    相关文章

      网友评论

          本文标题:字符流和字节流

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