博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字节流通向字符流的桥梁:InputStreamReader
阅读量:5980 次
发布时间:2019-06-20

本文共 2014 字,大约阅读时间需要 6 分钟。

public class InputStreamReader
extends

InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:

BufferedReader in   = new BufferedReader(new InputStreamReader(System.in));

构造方法摘要
( in)
          创建一个使用默认字符集的 InputStreamReader。
( in,  cs)
          创建使用给定字符集的 InputStreamReader。
( in,  dec)
          创建使用给定字符集解码器的 InputStreamReader。
( in,  charsetName)
          创建使用指定字符集的 InputStreamReader。
 
方法摘要
 void ()
          关闭该流并释放与之关联的所有资源。
  ()
          返回此流使用的字符编码的名称。
 int ()
          读取单个字符。
 int (char[] cbuf, int offset, int length)
          将字符读入数组中的某一部分。
 boolean ()
          判断此流是否已经准备好用于读取。

例:Demo

import java.io.*;class InputStreamReaderDemo {  public static void transReadNoBuf() throws IOException {    /**     * 没有缓冲区,只能使用read()方法。     */    //读取字节流    //InputStream in = System.in;//读取键盘的输入。    InputStream in = new FileInputStream("D:\\demo.txt");//读取文件的数据。    //将字节流向字符流的转换。要启用从字节到字符的有效转换,    //可以提前从底层流读取更多的字节.    InputStreamReader isr = new InputStreamReader(in);//读取    //综合到一句。    //InputStreamReader isr = new InputStreamReader(    //new FileInputStream("D:\\demo.txt"));          char []cha = new char[1024];    int len = isr.read(cha);    System.out.println(new String(cha,0,len));    isr.close();  }  public static void transReadByBuf() throws IOException {    /**     * 使用缓冲区 可以使用缓冲区对象的 read() 和  readLine()方法。     */    //读取字节流    //InputStream in = System.in;//读取键盘上的数据    InputStream in = new FileInputStream("D:\\demo.txt");//读取文件上的数据。    //将字节流向字符流的转换。    InputStreamReader isr = new InputStreamReader(in);//读取    //创建字符流缓冲区    BufferedReader bufr = new BufferedReader(isr);//缓冲    //BufferedReader bufr = new BufferedReader(    //new InputStreamReader(new FileInputStream("D:\\demo.txt")));可以综合到一句。      /*int ch =0;    ch = bufr.read();    System.out.println((char)ch);    */    String line;    while((line = bufr.readLine())!=null){      System.out.println(line);    }    isr.close();  }}

转载地址:http://zrlox.baihongyu.com/

你可能感兴趣的文章
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
mysql多实例实例化数据库
查看>>