0

有太多的java.io類,對於他們中的一些,我真的不明白,當我們需要他們,例如:ByteArrayInputStream的,的SequenceInputStream,StringReader在何處使用

ByteArrayInputStream的,ByteArrayOutputStream

的SequenceInputStream,

PushbackInputStream,PushbackReader

StringReader ...

我意味着一些現實生活中的用途

能有人請解釋...

+0

https://github.com/search?l=java&q=ByteArrayInputStream&source=cc&type=Code –

+1

我可以知道我的問題出了什麼問題嗎? –

回答

3

我會說,你的問題太寬。

但是可以給出一個非常基本的概述java.io package。它包含接口用於數據輸入和輸出操作,例如從文件中讀取字節。只有幾個基本的接口/類:

  • DataInput/ObjectInput - readig Java的原始和對象
  • DataOutput/ObjectOutput - 編寫Java原語和對象
  • InputStream - 讀個別字節
  • OutputStream - 寫個人字節
  • Reader - 讀字符數據
  • Writer - 寫字符數據

還有其他有用的接口(如Closeable),但這些不太顯著。


如果您閱讀這些類的JavaDoc最好。一些例子:

  1. 這很明顯,你會使用FileOutputStream寫入文件的東西。
  2. 字符數據由字節(由字符編碼定義)表示,因此您可以使用OutputStreamWriter來包裝任何輸出流。
  3. 您有byte[]並想從中讀取就像從InputStream?使用ByteArrayInputStream
  4. 您希望能夠將讀取的字節返回給閱讀器(通常只支持單個傳遞)?用PushbackReader包裝你的閱讀器。
  5. 您有一些String並想從中讀取就像從Reader?使用StringReader
  6. ...

所以如果你需要一些特定的數據流/讀/寫器,檢查java.io包,在網上搜索,如果需要問一個問題,關於左右。


當然,那裏有java.nio package,你應該知道。但這是一個不同的話題。

+0

我真正想要的是......不是一般地使用它們......它們的特殊用法的一些例子......就像我剛剛發現的那樣,字節數組輸入流可以用於讀取一些數據塊(可能是圖片)或者可能來自數據庫... –

+0

for SequenceInputStream我無法找到有用的用途 –

+1

**只讀JavaDoc ** ...它可以連接多個流。假設你想把一個輸入流交給一些組件,它應該讀取兩個文件...''新的SequenceInputStream(新的FileInputStream(「fileA」),新的FileInputStream(「fileB」))''。 –

相關問題