zoukankan      html  css  js  c++  java
  • 字符流

    1.1 字符编码表

    1ascii: 一个字节中的7位就可以表示。对应的字节都是正数。0-xxxxxxx

    2iso-8859-1:拉丁码表 latin,用了一个字节用的8位。1-xxxxxxx  负数。

    3GB2312:简体中文码表。包含6000-7000中文和符号。用两个字节表示。两个字节第一个字节是负数,第二个字节可能是正数

       GBK:目前最常用的中文码表,2万的中文和符号。用两个字节表示,其中的一部分文字,第一个字节开头是1,第二字节开头是0

        GB18030:最新的中文码表,目前还没有正式使用。

    1、unicode:国际标准码表:无论是什么文字,都用两个字节存储。

    l Java中的char类型用的就是这个码表。char c = 'a';占两个字节。

    l Java中的字符串是按照系统默认码表来解析的。简体中文版 字符串默认的码表是GBK。

    5UTF-8:基于unicode,一个字节就可以存储数据,不要用两个字节存储,而且这个码表更加的标准化,在每一个字节头加入了编码信息(后期到api中查找)

    能识别中文的码表:GBKUTF-8;正因为识别中文码表不唯一,涉及到了编码解码问题。

    对于我们开发而言;常见的编码 GBK  UTF-8  ISO-8859-1

    文字--->(数字) :编码。 “abc”.getBytes()  byte[]

    (数字)--->文字  : 解码。 byte[] b={97,98,99}  new String(b,0,len) 

    1.2 字符输入流Reader

    l read():读取单个字符并返回

    l read(char[]):将数据读取到数组中,并返回读取的个数。

    1.2.1 FileReader

    1.3 字符输出流Writer

    1.3.1 FileWriter

    1.4 flush()close()的区别?

    flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用。

    close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,否则丢失数据,然后在关闭流。流不可以使用。如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,由close完成刷新并关闭。

  • 相关阅读:
    SocketChannel 例子(转)
    多态(Polymorphism)的实现机制(上)--C++篇
    多态(Polymorphism)的实现机制(下)--Java篇
    java volatitle 多线程问题
    线程BlockingQueue (转)
    java 多态,和方法覆盖分析(转)
    MFC 调试技巧
    strlen与sizeof区别(转载)
    杭电1048
    杭电2013
  • 原文地址:https://www.cnblogs.com/cst123/p/13411209.html
Copyright © 2011-2022 走看看