源和目的都是内存的流的。
字节流:
ByteArrayInputStream ByteArrayOutputStream
字符流
CharArrayReader CharArrayWriter
StringReader StringWriter
原理其实通过流的read,write方法对数组以及字符串进行操作。
关闭这些流都是无效的。因为并未调用系统资源。不需要抛出IOException。
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
public class ByteArrayStreamDemo {
/**
* @param args
*/
public static void main(String[] args) {
//源和目的都内存的读写过程。
//源:内存。
ByteArrayInputStream bis = new ByteArrayInputStream("abcde".getBytes());//用流的读写思想操作数组中的数据。
// byte[] buf = "abcde".getBytes();
// for(byte b : buf){
// bos.write(b);
// }
//目的:内存。
ByteArrayOutputStream bos = new ByteArrayOutputStream();//内部有一个可自动增长的数组。
//不断的读写。
int ch = 0;
while((ch=bis.read())!=-1){
bos.write(ch);
}
//因为没有调用底层资源,所以不要关闭,即使调用了close,也没有任何效果,不会抛出IOException.
System.out.println(bos.toString());
}
}
网友评论