body, table{font-family: 微软雅黑}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

字符流出现的原因及思想

    ☞由于字节流操作中文不是特别方便,所以,java就提供了字符流。
    ☞字符流=字节流+编码表。

编码表概述和常见的编码表

█ 编码表

      ☞由字符及其对应的数值组成的一张表

█ 常见编码表

      ☞ASCII/Unicode 字符集
      ☞ISO-8859-1   Latin-1
      ☞GB2312/GBK/GB18030
      ☞BIG5
      ☞UTF-8

public class TestMain {
/*
* getBytes(String charsetName);
          使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
   String(byte[] bytes, String charsetName);
          通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
*/
        public static void main(String[] args) {
                String string = "hello world" ;       
                byte[] bytes = string.getBytes();   //编码
                for(int i=0;i<bytes.length;i++){
                        System.out.print(bytes[i]);   //输出字节码
                }
                //解码
                String jiemaStrin = new String(bytes);  //通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。//这个平台是操作系统,默认的编码GBK
                System.out.print('\n'+jiemaStrin);
        }
}
public static void main(String[] args) throws UnsupportedEncodingException {
                String string = "hello world 梅浩" ;
                //编码
                byte[] bytes = string.getBytes("utf-8");  //参数不写就是用系统默认GBK,但是我这被改成 utf-8 了;
                for(int i=0;i<bytes.length;i++){
                        System.out.print(bytes[i]);    //输出字节码
                }
                //解码
                //String jiemaStrin = new String(bytes);  //通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。(我这里已经把默认的改成utf-8了)
                String jiemaStrin = new String(bytes,"utf-8");                //这个平台是操作系统,默认的编码GBK
                System.out.print('\n'+jiemaStrin);
        }
}

//unicode码 :java 虚拟机内部使用
String str = "梅浩";      //存字符串常量区就是用 unicode 码存的。


字符流概述(转换流)
█ OutputStreamWriter 字符输出流

     ☞public OutputStreamWriter(OutputStream out);           //创建使用默认字符编码的 OutputStreamWriter。
     ☞public OutputStreamWriter(OutputStream out,String charsetName);   
      

█ InputStreamReader 字符输入流

     ☞public InputStreamReader(InputStream in);              //创建一个使用默认字符集的 InputStreamReader。
     ☞public InputStreamReader(InputStream in,String charsetName);       // 创建使用指定字符集的

Java——IO类 字符流概述的更多相关文章

  1. Java IO: 其他字符流(下)

    作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackReader,LineNumberReader,St ...

  2. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  3. [Java IO]03_字符流

    Java程序中,一个字符等于两个字节. Reader 和 Writer 两个就是专门用于操作字符流的类. Writer Writer是一个字符流的抽象类.  它的定义如下: public abstra ...

  4. Java IO编程——字符流与字节流

    在java.io包里面File类是唯一 一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.而对于程序而 ...

  5. java IO之 字符流 (字符流 = 字节流 + 编码表) 装饰器模式

    字符流 计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此, 从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符 层次的编码和解码.列如,在 ...

  6. Java IO系统--字符流

    字符流:尽管字节流提供了处理任何类型输入/输出操作的足够功能,它们补鞥呢直接操作Unicode字符.字符流层次结构的顶层是Reader和Writer抽象类.类似于InputStream和OutputS ...

  7. Java IO(四--字符流基本使用

    在上一节,介绍了字节流的基本使用,本节介绍一下字符流的使用 Reader: public abstract class Reader implements Readable, Closeable { ...

  8. Java IO之字符流

    public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("/User ...

  9. java字节流和字符流,以及java文件操作

    A.首先说字节流:1.字节流在操作的时候不会用到缓冲区(也就是内存)2.字节流可用于任何类型的对象,包括二进制对象3.字节流处理单元为1个字节,操作字节和字节数组.InputStream是所有字节输入 ...

随机推荐

  1. win10中mount和unmount iso文件

    https://www.windowscentral.com/how-mount-or-unmount-iso-images-windows-10 You can also right-click t ...

  2. C# 获取SQL Server所有的数据库名称

    参考文章:http://www.cnblogs.com/Abel_cn/archive/2008/12/09/1351425.html http://blog.csdn.net/friendan/ar ...

  3. LeetCode——Find Bottom Left Tree Value

    Question Given a binary tree, find the leftmost value in the last row of the tree. Example 1: Input: ...

  4. 不在同一主机:vsftpd+pam+mysql

    配置环境:Centos7上的mariadb + Centos6上的vsftpd 一.安装所需要程序 1.安装vsftpd和pam_mysql(在centos6-->192.168.108.160 ...

  5. 深蓝色 --ppt

    Deep Learning of Binary Hash Codes for Fast Image Retrieval [Paper] [Code-Caffe] 1. 摘要 针对图像检索问题,提出简单 ...

  6. linux中批量替换文本中字符串--转载

    (一)通过vi编辑器来替换.vi/vim 中可以使用 :s 命令来替换字符串.:s/well/good/ 替换当前行第一个 well 为 good:s/well/good/g 替换当前行所有 well ...

  7. Android广播接收器和Activity间传递数据

    Activity向广播接收器传递数据很简单,只需要在发送广播前将数据put进Intent中就行了. 广播接收器怎么向Activity传送数据?这里要用到接口,通过在广播接收器里定义一个接口,然后让接收 ...

  8. Hibernate 由实体类与配置文件的配置关系生成数据库中的表

    import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class ...

  9. DB中字段为null,为空,为空字符串,为空格要怎么过滤取出有效值

      比如要求取出微信绑定的,没有解绑的 未绑定,指定字段为null 绑定的,指定字段为某个字符串 解绑的,有的客户用的是更新指定字段为1,有的客户更新指定字段为‘1’ 脏数据的存在,比如该字段为空字符 ...

  10. 批量删除Redis数据库中的Key

    批量删除KeyRedis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作 redis-cli keys &q ...