幾種不同的OutputStream:
- ByteArrayOutputStream:把信息存入內存中的一個緩沖區(qū)中
- FileOutputStream:把信息存入文件中
- PipedOutputStream:實現了pipe的概念,主要在線程中使用
- SequenceOutputStream:把多個OutStream合并為一個OutStream
Reader和InputStream類似;Writer和OutputStream類似。
有兩個需要注意的:
- InputStreamReader : 從輸入流讀取字節(jié),在將它們轉換成字符。
- BufferReader : 接受Reader對象作為參數,并對其添加字符緩沖器,使用readline()方法可以讀取一行。
如何選擇I/O流
- 確定是輸入還是輸出
輸入:輸入流 InputStream Reader
輸出:輸出流 OutputStream Writer - 明確操作的數據對象是否是純文本
是:字符流 Reader,Writer
否:字節(jié)流 InputStream,OutputStream - 明確具體的設備。
- 文件:
讀:FileInputStream,, FileReader,
寫:FileOutputStream,FileWriter - 數組:
byte[ ]:ByteArrayInputStream, ByteArrayOutputStream
char[ ]:CharArrayReader, CharArrayWriter - String:
StringBufferInputStream(已過時,因為其只能用于String的每個字符都是8位的字符串), StringReader, StringWriter - Socket流
鍵盤:用System.in(是一個InputStream對象)讀取,用System.out(是一個OutoutStream對象)打印
- 文件:
- 是否需要轉換流
是,就使用轉換流,從Stream轉化為Reader、Writer:InputStreamReader,OutputStreamWriter - 是否需要緩沖提高效率
是就加上Buffered:BufferedInputStream, BufferedOuputStream, BufferedReader, BufferedWriter - 是否需要格式化輸出