java的INPUTSTREAM和INPUTSTREAMREADER有什么区别??

都在什么地方用啊??
2024-12-21 19:40:56
推荐回答(4个)
回答1:

InputStream 此抽象类是表示字节输入流的所有类的超类

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

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

回答2:

java输入输出流,使用了装饰模式
inputstream是最原始的,专注了核心功能
而inputstreamreader是核心功能的装饰,提供了更封装的方法

inputstream只能读字节,byte数组,而有reader的可以读char
如果在reader上再装饰一层buffered,那么就可以读取 string
方法是 readline()

回答3:

InputStream 是字节流
reader是字符流
INPUTSTREAMREADER 是将字节流转换成字符流,是上面两者的转换类。
比如输入时inputStram,可以用inputStreamReader(inputStream);返回reader的字符流

回答4:

INPUTSTREAM,此抽象类是表示字节输入流的所有类的超类。

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

InputStreamReader(InputStream in)