*装饰模式
- 字节缓冲流
- BufferedInputStream bis=new BufferedInputStream(inputStream is)
- BufferedOutputStream bos=new BufferedOutputStream(OutputStream os)
- 最底层一定是节点流
- 只需要释放最外层的处理流,若要手动关闭遵循从里到外的顺序关闭(从字节流到处理流)
- 默认为8k,可以改变
//参数是字节输入流对象
InputStream is =new BufferedInputStream(new InputStream(f));
OutputStream os=new BufferedOutputStream(new OutputStream(f));
处理流装饰字节流输入:
File f =new File("C:\\Users\\10853\\eclipse-workspace\\hell\\src\\hell\\abc");
InputStream is =null;
try {
**is=new BufferedInputStream(new FileInputStream(f));**
byte[] flush =new byte[1024];
int len=-1;
while((len=is.read(flush))!=-1)
{
is.read(flush,0,len);
}
}catch(FileNotFoundException e)
{
e.printStackTrace();
}catch(IOException e)
{
e.printStackTrace();
}finally {
try {
if(null!=is)
{
i**s.close();** //关闭处理流,会自动关闭字节流
}
}catch(IOException e)
{
e.printStackTrace();
}
}
处理流装饰字节流输出:
File f=new File("D:d/c.txt");
OutputStream os =null;
try
{
** os=new BufferedOutputStream(new FileOutputStream(f));**
String s="addaa";
byte[] datas=s.getBytes();
os.write(datas,0,datas.length);
os.flush();
}catch(FileNotFoundException e)
{
e.printStackTrace();
}catch(IOException e)
{
e.printStackTrace();
}finally {
try {
if(**null!=os**) //关闭处理流会自动关闭字节流
{
os.close();
}
}catch(IOException e)
{
e.printStackTrace();
}
}