內存流(字節數組流)ByteArrayInputStream
package org.example.io;
import java.io.ByteArrayInputStream;
import java.io.IOException;
/**
* ByteArrayInputStream:在創建對象時傳入數組即可,不需要傳文件,也沒有新增的方法,close()關閉無效
* 流本身就是內存中的資源,流中的內容也是內存中的資源,所以不用手動關閉,內存會給他釋放,所以不用關閉流
* 流的內容是內存中的資源,不訪問磁盤
*/
public class TestByteArrayInputStream {
public static void main(String[] args) {
String s = "Hello World!";
byte[] b = s.getBytes(); // 獲取字符串的字節數組
read(b);
}
private static void read(byte[] b) {
ByteArrayInputStream bais = new ByteArrayInputStream(b); // ByteArrayInputStream實例化時不拋出異常的原因是沒有和外界產生關系
int i = 0;
byte[] b1 = new byte[1024]; // 字節數組緩沖區
StringBuilder sb = new StringBuilder(); // StringBuilder位於java.lang包中,類似於字符串
try {
while ((i = bais.read(b1)) != -1) {
sb.append(new String(b1, 0, i)); // 將指定的字符串循環附加到sb上
}
System.out.println(sb); // 輸出sb字符串
} catch (IOException e) {
e.printStackTrace();
}
}
}
內存流(字節數組流)ByteArrayInputStream