類的繼承關系
InputStream |__ ByteArrayInputStream
OutputStream |__ ByteArrayOutputStream
ByteArrayInputStream 可以將字節數組轉化為輸入流 。
ByteArrayOutputStream 可以捕獲內存緩沖區的數據,轉換成字節數組。
ByteArrayInputStream
- 構造函數
public ByteArrayInputStream(byte buf[]) public ByteArrayInputStream(byte buf[], int offset, int length)
- 一般方法
void close() // 關閉該流並釋放與之關聯的所有資源。 String getEncoding() //返回此流使用的字符編碼的名稱。 int read() //讀取單個字符。 int read(char[] cbuf, int offset, int length) //將字符讀入數組中的某一部分。 boolean ready() //判斷此流是否已經准備好用於讀取。
ByteArrayOutputStream
- 構造函數
public ByteArrayOutputStream() public ByteArrayOutputStream(int size)
- 一般方法
void write(int b) void write(byte b[], int off, int len) void writeTo(OutputStream out) byte toByteArray()[] void close()
練習1
字節流 ByteArrayInputStream 的讀寫過程測試
package com.app; import java.io.ByteArrayInputStream; import java.io.IOException; public class A7 { public static void main(String[] args) { String mes = "hello,world" ; byte[] b = mes.getBytes() ; ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream( b ) ; int result = -1 ; while( ( result = byteArrayInputStream.read() ) != -1){ System.out.println( (char) result ); } try { byteArrayInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }
效果:

練習2
將 ByteArrayOutputStream 讀出的字節流用 FileOutputStream 寫入文件
package com.app; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class A6 { public static void main(String[] args) { String mes = "你好,world" ; byte[] b = mes.getBytes() ; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream() ; try { byteArrayOutputStream.write( b ); FileOutputStream fileOutputStream = new FileOutputStream( new File( "F:/123.txt" ) ) ; byteArrayOutputStream.writeTo( fileOutputStream ) ; fileOutputStream.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); }finally{ try { byteArrayOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
效果:

