Java的io类的使用场景
先附上io圖:
InputStream類
ByteArrayInputStream – 把內存中的一個緩沖區作為 InputStream 使用,CPU從緩存區讀取數據比從存儲介質的速率快10倍以上。
StringBufferInputStream – 把一個 String 對象作為。InputStream。不建議使用,在轉換字符的問題上有缺陷。
FileInputStream – 把一個文件作為 InputStream ,實現對文件的讀取操作。
PipedInputStream :實現了 pipe 的概念,主要在線程中使用 . 管道輸入流是指一個通訊管道的接收端。
一個線程通過管道輸出流發送數據,而另一個線程通過管道輸入流讀取數據,這樣可實現兩個線程間的通訊。SequenceInputStream :把多個 InputStream 合并為一個 InputStream . “序列輸入流”類允許應用程序把幾個輸入流連續地合并起來。
DataInputStream讀各種基本類型數據,如byte、int、String的功能。
ObjectInputStream讀對象的功能。
- PushBackInputStream 如果在輸入流中某個不需要的內容被讀取進來,則只能通過程序將這些不需要的內容處理掉,為了解決這樣的處理問題,在JAVA中提供了一種回退輸入流(PushbackInputStream、PushbackReader),可以把讀取進來的某些數據重新回退到輸入流的緩沖區之中。
這是InputStream的子類的常用應用場景,只要需要哪一個包裝類,直接把它包裝起來就可以啦。
其他io看名字就知道怎么用啦,最后再強調一下存儲字符流的過程。
1. 輸出字符流:把要寫入文件的字符序列(實際上是Unicode碼元序列)轉為指定編碼方式下的字節序列,然后再寫入到文件中;
2. 輸入字符流:把要讀取的字節序列按指定編碼方式解碼為相應字符序列(實際上是Unicode碼元序列從)從而可以存在內存中。
比如向文件輸入字符“demo”
d對應的Unicode編碼是\u0064
e對應的Unicode編碼是\u0065
…..
于是把demo根據系統默認編碼,把demo轉換成字節編碼 64 65 6d 6f
然后儲存在文件中。
輸入類似。
總結
以上是生活随笔為你收集整理的Java的io类的使用场景的全部內容,希望文章能夠幫你解決所遇到的問題。