日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PrintWriter和ServletOutputStream的区别

發布時間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PrintWriter和ServletOutputStream的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. PrintWriter是以字符為單位,對所有的信息進行處理,而ServletOutputStream僅對二進制的資料進行處理。
2. PrintWriter
在輸出字符文本時內部需要將字符串轉換成某種字符集編碼的字節數組,使用他的好處就是不需要自己來完成從字符串到字節數組的轉換。轉換的字符集編碼是通過設置setContentTpyesetCharacterEncodingsetLocale等方法實現的;使用ServletOutputStream對象直接從一個字節輸入流中讀取出來,然后再原封不動的輸出到客服端。
3.
這兩個方法相互排斥,只能調用其一,如果要用,則要在換方法之前調用flush(),將緩沖區數據沖掉。
4. PrintWriter
自動清空緩沖區的功能被使能時(構造函數中autoFlush置為true),僅當println()方法被調用時才自動清緩沖區,而不是像PrintStream一樣遇到一個換行符就清緩沖。

兩種方法的取舍:
使用PrintWriter會占用一些系統開銷,因為它是為處理字符流的輸出功能。因此PrintWriter應該使用在確保有字符集轉換的環境中。換句話說,在你知道servlet返回的僅僅是二進制數據時候,應該使用ServletOutputStream,這樣你可以消除字符轉換開銷,當servlet容器不用處理字符集轉換的時候。
前臺頁面請求圖片處理顯示。

<td valign="top" rowspan="5" width="16%"> <img src="${ctx }/departmentAction.do?dispatch=getDeptPic&id=${deptForm.department.deptId }" height="143" width="103"> </td>
后臺圖片顯示處理
ServletOutputStream sout = response.getOutputStream(); sout.write(dept.getDeptIcon());//
將緩沖區的輸入輸出到頁面 sout.flush(); // 輸入完畢,清除緩沖 sout.close();//關閉流


附:寫文件最佳組合
PrintWriter out = new PrintWriter( new BufferedWriter( new FileWriter(filename))) PrintWriter
提供print系方法
BufferedWriter
提供緩沖,用以加速
FileWriter
用于寫文件

總結

以上是生活随笔為你收集整理的PrintWriter和ServletOutputStream的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。