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();
    	}
    }


  • 相关阅读:
    c# 序列化和反序列化
    dataGridView通过checkbox选择数据
    获取文件后缀名(迟点写入自己的类库里面去) .NET
    刚在《微软中国msdn围脖》看到面试题
    jquery 遍历下拉框
    html代码转换成为纯文本
    获取ListBox中多选值
    递归算法运用到实际项目,可行吗?
    ExtJs学习笔记1
    JS 可变参数 arguments
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053439.html
Copyright © 2011-2022 走看看