/**
* 要求:对ByteArrayOutputStream和ByteArrayInputStream的应用
*/
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteArrayInputOutputStream {
public static void main(String[] args)throws IOException {
/*//使用ByteArrayInputStream输入一个字符串转化为数组输出
* String str="hello ,nihao";
ByteArrayInputStream bis=new ByteArrayInputStream(str.getBytes());
//最后使用完毕不用关闭资源,因为掉用的资源不占用内存
int data=-1;
while ((data=bis.read())!=-1) {
System.out.println((char)data);
}
//bis.close();不用书写这个因为就没有调用底层资源,所以也就不用释放资源
*/
//使用ByteArrayOutputStream输出对应的
ByteArrayOutputStream bos=new ByteArrayOutputStream();//默认的是bipush 32
bos.write(93);
bos.write(65);
bos.write("hello,world".getBytes());//抛出一个异常
byte [] buff= bos.toByteArray();
for (byte data : buff) {
System.out.print((char)data);
//也不用调用close方法,因为没有调用内部资源
}
//把缓冲区的内容写入一个文件内
FileOutputStream fos=new FileOutputStream("d:\\aa.txt",true);
//再次写入只会追加不会覆盖
bos.writeTo(fos);//把ByteArrayOutputStream内部缓冲区的数据写到对应的文件输出流中
fos.close();
}
}