Reader和InputStream有什么区别?什么时候使用什么?如果我可以使用Reader读取字符,为什么要使用inputstream,我想读取对象吗?
InputStream是从资源获取信息的原始方法。它不执行任何类型的转换就逐字节地获取数据。如果您正在读取图像数据或任何二进制文件,则这是要使用的流。
阅读器是为字符流设计的。如果您正在阅读的信息全部是文本,则阅读器将为您处理字符解码,并为您提供原始输入流中的unicode字符。如果您正在阅读任何类型的文本,则这是要使用的流。
您可以包装InputStream并通过使用InputStreamReader类将其转换为Reader。
Reader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);