Java之InputStreamReader类的实现

 更新时间:2020年11月11日 10:47:35   作者:格物致知_Tony  
这篇文章主要介绍了Java之InputStreamReader类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Java技术迷

InputStreamReader 类

1、概述

转换流 java.io.InputStreamReader ,是Reader的子类,是从字节流到字符流的桥梁。

该类读取字节,并使用指定的字符集将其解码为字符。它的字符集可以由名称指定,也可以接受平台的默认字符集。

2、继承自父类的共性成员方法

该类继承于 Reader 类,继承了父类的共性成员方法:

  • int read() 读取单个字符并返回。
  • int read(char[] cbuf)一次读取多个字符,将字符读入数组。
  • void close() 关闭该流并释放与之关联的所有资源。

3、构造方法

InputStreamReader(InputStream in) 创建一个使用默认字符集的 InputStreamReader。

InputStreamReader(InputStream in, String charsetName) 创建使用指定字符集的 InputStreamReader。

参数:

  • InputStream in:字节输入流,用来读取文件中保存的字节
  • String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8

4、使用步骤

① 创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称

② 使用InputStreamReader对象中的方法read读取文件

③ 释放资源

注意:构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码

Demo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) throws IOException {
     //1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
    //InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\gbk.txt"),"UTF-8");//???
     //将匿名对象流中的字节流按照GBK进行解码为字符流
     InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\gbk.txt"),"GBK");//你好
 
     //2.使用InputStreamReader对象中的方法read读取文件
    int len = 0;
     while((len = isr.read())!=-1){
      System.out.println((char)len);
     }
     //3.释放资源
     isr.close();
 }

到此这篇关于Java之InputStreamReader类的实现的文章就介绍到这了,更多相关Java InputStreamReader类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

原文链接:https://www.cnblogs.com/niujifei/p/11497692.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!

相关文章

  • Spring Boot 各种回滚操作实战教程(自动回滚、手动回滚、部分回滚)

    Spring Boot 各种回滚操作实战教程(自动回滚、手动回滚、部分回滚)

    这篇文章主要介绍了Spring Boot 各种回滚操作实战教程(自动回滚、手动回滚、部分回滚),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • java生成json数据示例

    java生成json数据示例

    这篇文章主要介绍了java生成json数据示例,需要的朋友可以参考下
    2014-04-04
  • java中@requestMappling注解的使用

    java中@requestMappling注解的使用

    本文主要介绍了java中@requestMappling注解的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • java.lang.UnsatisfiedLinkError: %1 不是有效的Win32应用程序错误解决

    java.lang.UnsatisfiedLinkError: %1 不是有效的Win32应用程序错误解决

    这篇文章主要给大家介绍了关于java.lang.UnsatisfiedLinkError: %1 不是有效的Win32应用程序错误的解决方法,文中介绍的非常详细,需要的朋友们可以参考学习,下面来一起看看吧。
    2017-03-03
  • Spring AOP如何实现注解式的Mybatis多数据源切换详解

    Spring AOP如何实现注解式的Mybatis多数据源切换详解

    这篇文章主要给大家介绍了关于Spring AOP如何实现注解式的Mybatis多数据源切换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 解决Java Calendar类set()方法的陷阱

    解决Java Calendar类set()方法的陷阱

    这篇文章主要介绍了解决Java Calendar类set()方法的陷阱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Java实现堆算法的使用示例

    Java实现堆算法的使用示例

    本文主要介绍了Java实现堆算法的使用示例,Java中提供了一个Heap类,可以用来实现堆的操作,可以实现如插入、删除、获取最大最小值等,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 详解Spring-Boot集成Spring session并存入redis

    详解Spring-Boot集成Spring session并存入redis

    这篇文章主要介绍了详解Spring-Boot集成Spring session并存入redis,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Java Socket通信之聊天室功能

    Java Socket通信之聊天室功能

    这篇文章主要为大家详细介绍了Java Socket通信之聊天室功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java 8 中 Map 骚操作之 merge() 的使用方法

    Java 8 中 Map 骚操作之 merge() 的使用方法

    本文简单介绍了一下Map.merge()的方法,除此之外,Java 8 中的HashMap实现方法使用了TreeNode和 红黑树,原理很相似,今天通过本文给大家介绍Java 8 中 Map 骚操作之 merge() 的用法 ,需要的朋友参考下吧
    2021-07-07

最新评论