java的InputStream和InputStreamReader有什么区别??

来源:互联网 发布:强强软件 编辑:程序博客网 时间:2024/05/22 10:26
解释一:
InputStream  此抽象类是表示字节输入流的所有类的超类InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。 每次调用 InputStreamReader 中的一个 read()() 方法都会导致从基础输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从基础流读取更多的字节,使其超过满足当前读取操作所需的字节
解释二:java输入输出流,使用了装饰模式inputstream是最原始的,专注了核心功能而inputstreamreader是核心功能的装饰,提供了更封装的方法inputstream只能读字节,byte数组,而有reader的可以读char如果在reader上再装饰一层buffered,那么就可以读取 string 方法是 readline()
简单的文件上传:
<%InputStream is = request.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String buffer = null;while((buffer = br.readLine()) != null){out.print(buffer + "<br>");}%>
0 0
原创粉丝点击