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