zoukankan      html  css  js  c++  java
  • Java IO流:(十二)转换流

    一、转换流

      1、转换流概念

        转换流提供了字节流和字符流之间的转换。

      2、Java 中的转换流

        Java API 提供了两个转换流:

    InputStreamReader:将InputStream转换为Reader
    
    OutputStreamWriter:将Writer转换为OutputStream
    

        InputStreamReader:将一个字节的输入流转换为字符的输入流

        OutputStreamWriter:将一个字符的输出流转换为字节的输出流

      3、转换流好处

        作用:提供字节流与字符流之间的转换

        字节流中的数据都是字符时,转成字符流操作更高效。

        很多时候我们使用转换流来处理文件乱码问题,实现编码和解码的功能。

     

    二、不同编码引发的问题

      当我们使用 UTF-8 编码保存文件时,用 UTF-8 再次读取不会出现任何问题。但是,当使用其他的编码(如GBK)读取文件时,就会出现乱码现象。

      Demo:

     1 public class ReaderDemo {
     2     public static void main(String[] args) throws IOException {
     3         FileReader fileReader = new FileReader("E:\File_GBK.txt");
     4         int read;
     5         while ((read = fileReader.read()) != ‐1) {
     6             System.out.print((char)read);
     7         }
     8          fileReader.close();
     9     }
    10 } 
    11 输出结果:
    12 ���    

    三、转换流理解图解

      转换流是字节与字符间的桥梁!

        

        转换流的原理

    四、字符编码

        编码:字符串 —>字节数组

      解码:字节数组—> 字符串

      转换流的编码应用

        (1)可以将字符按指定编码格式存储;

        (2)可以对文本数据按指定编码格式来解读;

        (3)指定编码表的动作由构造器完成。

    五、计算机字符编码

        计算机字符编码

  • 相关阅读:
    POJ 2653 Pick-up sticks [线段相交 迷之暴力]
    POJ1556 The Doors [线段相交 DP]
    POJ 3304 Segments[直线与线段相交]
    POJ2318 TOYS[叉积 二分]
    挖坑
    HDU3488 Tour [有向环覆盖 费用流]
    BZOJ 3438: 小M的作物 [最小割]
    POJ 2125 Destroying The Graph [最小割 打印方案]
    网络流算法与建模总结
    CF266D. BerDonalds [图的绝对中心]
  • 原文地址:https://www.cnblogs.com/niujifei/p/14848238.html
Copyright © 2011-2022 走看看