返回介绍

java.io 类 InputStreamReader

发布于 2019-10-04 09:50:45 字数 7157 浏览 1048 评论 0 收藏 0

java.lang.Object
  └java.io.Reader
      └java.io.InputStreamReader
所有已实现的接口:
Closeable, Readable
直接已知子类:
FileReader

public class InputStreamReader
extends Reader
 

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

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

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

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

 

从以下版本开始:
JDK1.1
另请参见:
BufferedReader , InputStream , Charset

 

字段摘要
从类 java.io.Reader 继承的字段
lock
构造方法摘要
InputStreamReader(InputStreamin) 创建一个使用默认字符集的 InputStreamReader。
InputStreamReader(InputStreamin, java.nio.charset.Charsetcs) 创建使用给定字符集的 InputStreamReader。
InputStreamReader(InputStreamin, java.nio.charset.CharsetDecoderdec) 创建使用给定字符集解码器的 InputStreamReader。
InputStreamReader(InputStreamin, StringcharsetName) 创建使用指定字符集的 InputStreamReader。
方法摘要
voidclose() 关闭该流。
StringgetEncoding() 返回此流使用的字符编码的名称。
intread() 读取单个字符。
intread(char[]cbuf, intoffset, intlength) 将字符读入数组中的某一部分。
booleanready() 告知是否准备读取此流。
从类 java.io.Reader 继承的方法
mark, markSupported, read, read, reset, skip
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

 

构造方法详细信息

InputStreamReader

public InputStreamReader(InputStreamin)
创建一个使用默认字符集的 InputStreamReader。
参数:
in - InputStream

InputStreamReader

public InputStreamReader(InputStreamin,
                         StringcharsetName)
                  throws UnsupportedEncodingException
创建使用指定字符集的 InputStreamReader。
参数:
in - InputStream
charsetName - 受支持的 charset 的名称
抛出:
UnsupportedEncodingException - 如果不支持指定的字符集

InputStreamReader

public InputStreamReader(InputStreamin,
                         java.nio.charset.Charsetcs)
创建使用给定字符集的 InputStreamReader。
参数:
in - InputStream
cs - 字符集
从以下版本开始:
1.4

InputStreamReader

public InputStreamReader(InputStreamin,
                         java.nio.charset.CharsetDecoderdec)
创建使用给定字符集解码器的 InputStreamReader。
参数:
in - InputStream
dec - 字符集解码器
从以下版本开始:
1.4

方法详细信息

getEncoding

public String getEncoding()
返回此流使用的字符编码的名称。

如果该编码有历史上用过的名称,则返回该名称;否则返回该编码的规范化名称。

如果使用 InputStreamReader(InputStream, String) 构造方法创建此实例,则返回的由此编码生成的唯一名称可能与传递给该构造方法的名称不一样。如果流已经关闭,则此方法可能返回 null

返回:
此编码的历史名称,如果流已经关闭,则可能返回 null
另请参见:
Charset

read

public int read()
         throws IOException
读取单个字符。
覆盖:
Reader 中的 read
返回:
读取的字符,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

read

public int read(char[]cbuf,
                intoffset,
                intlength)
         throws IOException
将字符读入数组中的某一部分。
指定者:
Reader 中的 read
参数:
cbuf - 目标缓冲区
offset - 以其处开始存储字符的偏移量
length - 要读取的最大字符数
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

ready

public boolean ready()
              throws IOException
告知是否准备读取此流。如果其输入缓冲区不为空,或者可从基础字节流读取字节,则 InputStreamReader 为已做好被读取准备。
覆盖:
Reader 中的 ready
返回:
如果保证下一个 read() 不阻塞输入,则返回 True,否则返回 false。注意,返回 false 并不保证阻塞下一次读取。
抛出:
IOException - 如果发生 I/O 错误

close

public void close()
           throws IOException
关闭该流。
指定者:
接口 Closeable 中的 close
指定者:
Reader 中的 close
抛出:
IOException - 如果发生 I/O 错误

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文