zoukankan      html  css  js  c++  java
  • 关于ByteArrayInputStream和ByteArrayOutputStream

    package stream.byte_;
    
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    
    /**
     * 内存操作流:用于处理临时存储信息的,程序结束,数据就从内存中消失。
     *
     * 字节数组: ByteArrayInputStream ByteArrayOutputStream
     * 
     * 操作字符数组 CharArrayReader CharArrayWriter
     * 
     * 操作字符串 StringReader StringWriter
     * 
     * @author 半步疯子
     *
     */
    public class ByteStreamDemo {
    	/*
    	 * public class ByteArrayOutputStreamextends OutputStream 此类实现了一个输出流,其中的数据被写入一个
    	 * byte 数组。 缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。 关闭
    	 * ByteArrayOutputStream 无效。 此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。
    	 * 
    	 * 
    	 * 底层是byte数组; 但是可指定size 但是我们需要的本来就是这种可以自动增长的流; 所以一般不用修改
    	 */
    	public static void main(String[] args) throws IOException {
    		ByteArrayOutputStream baos = new ByteArrayOutputStream();
    		// 写数据
    		for (int i = 0; i < 10; i++) {
    			baos.write("hello
    ".getBytes());
    		}
    
    		// 释放资源
    		// 但是这种释放资源并没有意义,因为其实这种资源并不需要关闭
    		// public void close() throws IOException {
    		// }
    		baos.close();
    
    		// 读数据
    		byte[] bys = baos.toByteArray();
    
    		ByteArrayInputStream bais = new ByteArrayInputStream(bys);
    		int by = 0;
    		while ((by = bais.read()) != -1) {
    			System.out.print((char) by);
    		}
    
    		// bais.close();
    	}
    }


  • 相关阅读:
    【Beta阶段】第一次Scrum Meeting
    【Beta阶段】第二次Scrum Meeting
    【Beta阶段】第三次Scrum Meeting
    [BUAA软工]Alpha阶段事后分析
    [BUAA软工]Alpha阶段测试报告
    [北航软工]团队贡献分规则
    Windows Server 2008 R2之二从介质安装 AD DS
    Windows Server 2008 R2之一活动目录服务部署
    DC84问
    获取命令行指定参数
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053439.html
Copyright © 2011-2022 走看看