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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java中IO流体系以及常用实现类

發布時間:2024/1/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中IO流体系以及常用实现类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、體系

??分為字節流和字符流,也可以說是分為輸入流和輸出流。字節流InputStream,OutputStream以字節形式操作二進制文件非常合適。字符流Writer和Reader操作文本比較適宜。輸入輸出流的參照物是內存,把東西拿到內存里面來的就是輸入流,從內存中拿東西出去的就是輸出流。
??所有IO的實現類子類后綴都是上述4個類,都是抽象類。結構還是比較清晰的。IO 實現了對文件的讀寫操作。

二、常用實現類

我們用上述4個類的子類來實際應用。
應用的思路是:
先用File類new一個文件,但是,一般不用明寫出來。直接用初級實現類關聯文件(如FileInputStream),然后緩沖字節流包裝初級類(如BufferedInputStream)。

InputStream:

FileInputStream,初級實現類,一個字節一個字節的操作,性能較低。
BufferedInputStream,有緩沖的字節輸出流,性能較高。
ObjectInputStream,對象字節輸入流,把序列化的對象讀取出來,即反序列化。如果序列化的對象有版本號,則必須和版本號保持一致。

OutputStream:

FileOutputtStream,初級實現類,一個字節一個字節的操作,性能較低。
BufferedOutputStream,有緩沖的字節輸出流,性能較高。
ObjectInputStream,對象字節輸出流,序列化對象用的。意思是把對象保存到文件。對象必須實現Serializable接口。

Writer:

FileWriter,單個字符的寫入字符,性能較低。
BufferedWriter,緩沖字符流,性能較高。
InputStreamWriter,轉換流,指定寫入文件的編碼,解決亂碼問題。

Reader:

FileReader,單個字符的讀取字符,性能較低。
BufferedReader,緩沖字符流,性能較高。
InputStreamWriter,轉換流,指定以什么編碼方式讀取文件,解決亂碼問題。

附:打印流

PrintWriter,打印流。鍵盤輸入什么就是什么,最方便的字符輸入流。而且性能較高。


2023.1.4加更

  • 節點流。
  • 直接操作文件,但功能較為簡單,效率較低。
  • 處理流。
  • 不能直接操作文件,而是包裝節點流使其更高效,更強大。采用修飾者模式。
  • 使用完畢,關閉最外層的流即可。
  • 對象流。
  • 序列化對象用的,即保存對象的數值和類型。
  • 轉換流。
  • 指定編碼形式來讀取文件,解決亂碼問題。
  • 底層操作仍然是字符流,屬于包裝流一類,不能直接操作文件。只有節點流可以直接操作文件。
  • 打印流
  • 打印流只有輸出流。輸出比較方便??梢灾囟ㄏ騍ystem.out的輸出位置。

總結

以上是生活随笔為你收集整理的java中IO流体系以及常用实现类的全部內容,希望文章能夠幫你解決所遇到的問題。

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