java的InputStream和InputStreamReader有什麼區別??
阿新 • • 發佈:2019-02-06
解釋一:
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>");
}
%>