JAVA——缓冲流 (字节流传输 汉字时会出现问题)

package com.cskaoyan.io02.introduction;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * @author zhangshuai@Cskaoyan.onaliyun.com.
 * @version 1.0
 *
 * 昨天我们已经,学习了字节流,下面我们首先通过字节流,完成如下功能:

      1.向文本中写入数字或英文字符,然后将其读入内存,并在控制台上显示
      2.向文本中写入中文字符,将其读入内存,并在控制台上显示

     在一边读取中文字符,并一边显示的时候,出了问题,中文字符不能正确显示。
     ->  在这样的场景下,我们使用字节流,操作字符数据不太好用

     为啥中文字符不能正确显示呢? 因为一个中文字符,对应的整数值,要用多个字节数据,至少得有两个字节的数据表示一个中文字符
 */
public class Demo1 {

  public static void main(String[] args) throws IOException {
    FileInputStream fis = new FileInputStream("a.txt");

    // 读取英文或数字字符,并显示
     int readByte;

     while ((readByte = fis.read()) != -1) {
       char c = (char) readByte;
       System.out.print(c);
     }

    System.out.println("你好");
  }



}

  

当输入汉字时会出现乱码

 

posted @ 2020-09-01 22:28  LY心情笔记  阅读(256)  评论(1)    收藏  举报