资讯专栏INFORMATION COLUMN

转换流05_InputStreamReader介绍&代码实

alanoddsoff / 1708人阅读

摘要:是字节流通向字符流的桥梁它使用指定的读取字节并将其解码为字符。解码把看不懂的变成能看懂的继承自父类的共性成员方法读取单个字符并返回。一次读取多个字符将字符读入数组。关闭该流并释放与之关联的所有资源。构造方法创建一个使用默认字符集的。

package com.itheima.demo03.ReverseStream;

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

/*

java.io.InputStreamReader extends Reader
InputStreamReader:是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。(解码:把看不懂的变成能看懂的)

继承自父类的共性成员方法:
    int read() 读取单个字符并返回。
    int read(char[] cbuf)一次读取多个字符,将字符读入数组。
    void close() 关闭该流并释放与之关联的所有资源。
构造方法:
    InputStreamReader(InputStream in) 创建一个使用默认字符集的 InputStreamReader。
    InputStreamReader(InputStream in, String charsetName) 创建使用指定字符集的 InputStreamReader。
    参数:
        InputStream in:字节输入流,用来读取文件中保存的字节
        String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8
 使用步骤:
    1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
    2.使用InputStreamReader对象中的方法read读取文件
    3.释放资源
 注意事项:
    构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码

*/
public class Demo03InputStreamReader {

public static void main(String[] args) throws IOException {
    //read_utf_8();
    read_gbk();
}


/*
    使用InputStreamReader读取GBK格式的文件
 */
private static void read_gbk() throws IOException {
    //1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
    //InputStreamReader isr = new InputStreamReader(new FileInputStream("10_IOgbk.txt"),"UTF-8");//???
    InputStreamReader isr = new InputStreamReader(new FileInputStream("10_IOgbk.txt"),"GBK");//你好

    //2.使用InputStreamReader对象中的方法read读取文件
    int len = 0;
    while((len = isr.read())!=-1){
        System.out.println((char)len);
    }
    //3.释放资源
    isr.close();
}

/*
    使用InputStreamReader读取UTF-8格式的文件
 */
private static void read_utf_8() throws IOException {
    //1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
    //InputStreamReader isr = new InputStreamReader(new FileInputStream("10_IOutf_8.txt"),"UTF-8");
    InputStreamReader isr = new InputStreamReader(new FileInputStream("10_IOutf_8.txt"));//不指定默认使用UTF-8
    //2.使用InputStreamReader对象中的方法read读取文件
    int len = 0;
    while((len = isr.read())!=-1){
        System.out.println((char)len);
    }
    //3.释放资源
    isr.close();
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76258.html

相关文章

  • 转换04_OutputStreamWriter介绍&代码

    摘要:是字符流通向字节流的桥梁可使用指定的将要写入流中的字符编码成字节。编码把能看懂的变成看不懂继续自父类的共性成员方法写入单个字符。刷新该流的缓冲。关闭此流,但要先刷新它。构造方法创建使用默认字符编码的。 package com.itheima.demo03.ReverseStream; import java.io.FileOutputStream;import java.io.IOEx...

    notebin 评论0 收藏0
  • 1、转换 2、缓冲

    摘要:字符转换流原理字节流编码表。和作为子类,仅作为操作字符文件的便捷类存在。源目的先根据需求明确要读,还是要写。屏幕网络完全可以明确具体要使用哪个流对象。明确四是否需要额外功能呢额外功能转换吗转换流。高效吗缓冲区对象。 01转换流概述 * A: 转换流概述 * a: 转换流概述 * OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码...

    sf190404 评论0 收藏0
  • Java编程基础22——IO(字符)&字符其他内容&递归

    摘要:字符流字符流是什么字符流是可以直接读写字符的流字符流读取字符就要先读取到字节数据然后转为字符如果要写出字符需要把字符转为字节再写出类的方法可以按照字符大小读取通过项目默认的码表一次读取一个字符赋值给将读到的字符强转后打印字符流类的方法可以 1_字符流FileReader 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. ...

    BoYang 评论0 收藏0
  • 转换06_练习_转换文件编码

    package com.itheima.demo03.ReverseStream; import java.io.*; /* 练习:转换文件编码 将GBK编码的文本文件,转换为UTF-8编码的文本文件。 分析: 1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称GBK 2.创建OutputStreamWriter对象,构造方法中传递...

    linkFly 评论0 收藏0
  • Java知识点总结(JavaIO-转换

    摘要:知识点总结转换流知识点总结是的子类,将一个字符流的输出对象变为字节流的输出对象。将字节输出流转为字符输出流字节流转为字符流苹果将字节输入流转为字符输入流内容是 Java知识点总结(JavaIO-转换流) @(Java知识点总结)[Java, JavaIO] [toc] showImg(https://segmentfault.com/img/bV82dQ?w=849&h=226); O...

    luckyyulin 评论0 收藏0

发表评论

0条评论

alanoddsoff

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<