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

解释一:

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>");		
	}
%>
posted @ 2013-12-16 17:01  宋建国  阅读(955)  评论(0编辑  收藏  举报