Java输出流需要注意的几点细节
生活随笔
收集整理的這篇文章主要介紹了
Java输出流需要注意的几点细节
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、OutputStream—字節輸出流
二、Writer----字符輸出流
三、問題
上面的總結可以發現:字節流只有非Buffered的輸出流才不需要調用flush() 或者使用了PrintWriter自動刷新了,BufferedOutputStream BufferedWriter PrintWriter(非自動刷新) 都需要顯示的調用flush()方法。當然close的時候也會刷新,但是可能close的時候報錯(這個方法會拋出異常),或者想及時的把數據發送給對方或者輸出到文件,最好還是flush()一下。
總結:非buffer字節流才不需要調用flush
字符操作用writer(最好是BufferedWriter)效率更高,操作方法
如果操作需要換行字符的使用PrintWriter。操作二進制文件,圖片,音頻等數據的時候,用字節流(最好使用BufferedOutputStream,效率高)
- 發送圖片,二進制文件,對象流等—最好使用BufferedOutputStream包裝,然后輸出字節流,需要flush
- 發送字符串----最好用BufferedWriter或者PrintWriter包裝,然后輸出字符串,需要flush
socket讀取的時候,read()操作是阻塞式的,也就是說,除非一端flush或者使用了非包裝的字節流,這邊才能讀取到數據,當對方close關閉流的時候,才是真正的讀取完畢
文章轉自
總結
以上是生活随笔為你收集整理的Java输出流需要注意的几点细节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一周时间摸清一个行业
- 下一篇: 正月初四 | 2月15日 星期一 | 特