首页 > 其他分享 >00022.12 [第三种]转换流:InputStreamReader

00022.12 [第三种]转换流:InputStreamReader

时间:2023-02-20 12:33:15浏览次数:38  
标签:fis arr String 第三种 00022.12 io new InputStreamReader 字节


转换流:InputStreamReader目录

文章目录

  • ​​转换流:InputStreamReader目录​​
  • ​​一、是什么?​​

一、是什么?

解码:字节输入流转字符输入流的转换流(稍微有点拗口)

下面看怎么用

00022.12 [第三种]转换流:InputStreamReader_StreamReader


00022.12 [第三种]转换流:InputStreamReader_InputStream_02


不一致的时候怎么办

00022.12 [第三种]转换流:InputStreamReader_解码_03


解码操作

00022.12 [第三种]转换流:InputStreamReader_InputStream_04


一个汉字2个字节

缺一个字节 的时候

00022.12 [第三种]转换流:InputStreamReader_InputStream_05


我们换一种方式

00022.12 [第三种]转换流:InputStreamReader_java_06


00022.12 [第三种]转换流:InputStreamReader_InputStream_07

00022.12 [第三种]转换流:InputStreamReader_Input_08

完整代码:

package com.atguigu.test08;

import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.junit.Test;

/*
* 解码: 字节输入流转字符输入流的转换流,同时还能指定编码方式
* InputStreamReader:
*/
public class TestInputStreamReader {
@Test
public void test03()throws IOException{
//解码:字节-->字符
FileInputStream fis = new FileInputStream("d:/io.txt");
InputStreamReader isr = new InputStreamReader(fis,"GBK");//将fis流中的字节流按照GBK进行解码为字符流
//数据:d:/io.txt(GBK)-->fis(纯字节)-->isr(GBK)解成字符流-->按字符读取
char[] arr = new char[3];
int len = isr.read(arr);
System.out.println(new String(arr,0,len));

isr.close();
fis.close();
}

@Test
public void test02() throws IOException{
//String:解码
//解码:字节-->字符
FileInputStream fis = new FileInputStream("d:/io.txt");
byte[] arr = new byte[10];
int len = fis.read(arr);
//String(byte[] bytes, String charsetName)
//String(byte[] bytes, int offset, int length, String charsetName)
System.out.println(new String(arr,0,len,"GBK"));
fis.close();
}

@Test
public void test01() throws IOException{
//乱码:d:/io.txt的编码是GBK,平台是UTF-8
FileReader fr = new FileReader("d:/io.txt");
char[] arr = new char[1024];
int len = fr.read(arr);
System.out.println(new String(arr,0,len));
fr.close();
}
}


标签:fis,arr,String,第三种,00022.12,io,new,InputStreamReader,字节
From: https://blog.51cto.com/u_15800767/6068304

相关文章