package faengine; import junit.framework.TestCase; import java.io.*; import java.util.zip.InflaterInputStream; public class TestByteArrayOutputStream extends TestCase { public static final int StreamFlushBufferSzie=100;//buffer size= 1K /** * 输入流或者输出流转化成 ByteArrayOutputStream * @param obj * @param bufferSize * @return */ public static ByteArrayOutputStream castToBAOStream(Object obj,int bufferSize){ ByteArrayOutputStream baos=new ByteArrayOutputStream(); if(obj.getClass().isInstance(baos)){ return (ByteArrayOutputStream)obj; }else{ InputStream fis; try{ fis=(FileInputStream)obj; try{ BufferedInputStream bis=new BufferedInputStream(fis); baos=new ByteArrayOutputStream(); BufferedOutputStream bos=new BufferedOutputStream(baos); int ch; int i=0; while((ch=bis.read())!=-1){ bos.write(ch); if(i++==bufferSize){ bos.flush(); i=0; } } bos.flush(); //提交文件流,很关键 bis.close(); return baos; }catch(ClassCastException e){ // logger.info("Stream object not a ByteArrayOutputStream or a FileInputStream:",e); return null; }catch(Exception e){ // logger.info("baos is null:",e); return null; } }catch(ClassCastException e){ fis=(InflaterInputStream)obj; try{ baos=new ByteArrayOutputStream(); BufferedOutputStream bos=new BufferedOutputStream(baos); int ch; int i=0; // ii.read(b, off, len) byte[] by = new byte[2048]; while((ch=fis.read(by))!=-1){ bos.write(by,0,ch); if(i++==bufferSize){ bos.flush(); i=0; } } bos.flush(); //提交文件流,很关键 fis.close(); // ZipUtil.getZipName().close(); return baos; }catch(ClassCastException e1){ // logger.info("Stream object not a ByteArrayOutputStream or a FileInputStream:",e1); return null; }catch(Exception e1){ // logger.info("baos is null:",e1); return null; } } } } private InputStream getInputStream() throws FileNotFoundException { File file = new File("d://ac.xml"); FileInputStream in = new FileInputStream(file); return in; } public String getFAXML() throws FileNotFoundException { InputStream in = this.getInputStream(); ByteArrayOutputStream baos = castToBAOStream(in,StreamFlushBufferSzie); return baos.toString(); } public void getOutXML(String str) throws UnsupportedEncodingException, IOException { File file = new File("d://a.xml"); FileOutputStream out = new FileOutputStream(file); out.write(str.getBytes("UTF-8")); out.write(str.getBytes()); out.flush(); out.close(); } }