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. tensorflow拟合随机生成的三维数据【学习笔记】

    平台信息:PC:ubuntu18.04.i5.anaconda2.cuda9.0.cudnn7.0.5.tensorflow1.10.GTX1060 作者:庄泽彬(欢迎转载,请注明作者) 说明:感谢t ...

  2. 分布式系统一致性算法Raft

    Raft 算法也是一种少数服从多数的算法,在任何时候一个服务器可以扮演以下角色之一:Leader:负责 Client 交互 和 log 复制,同一时刻系统中最多存在一个Follower:被动响应请求 ...

  3. PAT第二次上机题目

    5-1 #include <iostream> #include <cstdlib> using namespace std; template <class T> ...

  4. 【Django】【五】开发Web接口

    [HTTP协议与JSON] 1. HTTP协议 特点如下: (1)支持客户/服务器模式. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.POST.每种方法规定了客户 ...

  5. 2:JavaScript中的基本运算

    今天说的是JavaScript中的数据基本运算 在上一节中已经说了关于JavaScript中的基本数据类型 那么数据有了 剩下来就是数据之间的运算 表达式-------预算符(赋值 比较 算数 逻辑 ...

  6. hdu 6020 MG loves apple 恶心模拟

    题目链接:点击传送 MG loves apple Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Ja ...

  7. Js页面自动跳转

    //声明 t = 1 var t = 10; function openwin() { t -= 1; if(t==0){ location.href='index2.html'; } setTime ...

  8. python 普通文件读写

    with open('ttt.txt', 'w') as f: f.write('456.098909,9.090988,7.878765') with open('ttt.txt', 'r') as ...

  9. MongoDB(课时20 游标)

    3.5 游标(重点) 所谓游标就是指数据可以一行行的进行操作,非常类似于ResultSet数据处理.在MongoDB里对游标的控制使用find()函数就可以返回游标.对于返回的游标如果想进行操作,使用 ...

  10. 使用CMake在Linux下编译tinyxml静态库

    环境:CentOS6.6+tinyxml_2_6_21.下载并解压tinyxml_2_6_2.zip unzip tinyxml_2_6_2.zip 2.在tinyxml文件夹里创建一个CMakeLi ...