字节数组流
FileInputStream是把File文件当做数据源,而ByteArrayInputStream则是把内存中的”某个字节数组对象”作为源。
常常用在需要流和数组之间转化的情况。
不需要关闭流的操作。
ByteArrayInputStream
import java.io.ByteArrayInputStream;
import java.io.IOException;
public class ByteArrayInputStreamTest {
public static void main(String[] args) {
String str = "Makka Pakka";
byte[] src = str.getBytes();
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(src);
byte[] flush = new byte[10];
int len = 0;
while(((len=bais.read(flush))!=-1)){
String string = new String(flush,0,len);
System.out.println(string);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
ByteArrayOutputStream
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class ByteArrayOutputStreamTest {
public static void main(String[] args) {
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream(); //不需指定目的地
String str = "Makka Pakka";
byte[] src = str.getBytes();
baos.write(src, 0, src.length);
baos.flush();
byte[] datas = baos.toByteArray(); //取出写的字节数组
} catch (IOException e) {
e.printStackTrace();
}
}
}