gpt4 book ai didi

java - InputStream 与 InputStreamReader

转载 作者:IT老高 更新时间:2023-10-28 20:27:42 36 4
gpt4 key购买 nike

使用 InputStream 而不是 InputStreamReader 有什么好处,反之亦然。

下面是 InputStream 的示例:

InputStream input = new FileInputStream("c:\\data\\input-text.txt");

int data = input.read();
while(data != -1) {
//do something with data...
doSomethingWithData(data);

data = input.read();
}
input.close();

这里是一个使用 InputStreamReader 的例子(显然是在 InputStream 的帮助下):

InputStream inputStream = new FileInputStream("c:\\data\\input.txt");
Reader reader = new InputStreamReader(inputStream);

int data = reader.read();
while(data != -1){
char theChar = (char) data;
data = reader.read();
}

reader.close();

Reader 是否以特殊方式处理数据?

只是想了解一下 Java 中的整个 i/o 流数据方面。

最佳答案

它们代表的东西有些不同。

InputStream 是所有可能的 streams 字节的祖先类,它本身不是有用的,而是所有子类(如 FileInputStream 你正在使用的)非常适合处理二进制数据。

另一方面,InputStreamReader(及其父Reader)专门用于处理字符(即字符串),因此它们处理字符集编码(utf8、iso -8859-1,等等)优雅地。

简单的答案是:如果您需要二进制数据,您可以使用 InputStream(也可以是 DataInputStream 等特定数据),如果您需要使用文本使用一个 InputStreamReader..

关于java - InputStream 与 InputStreamReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3194918/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com