zoukankan      html  css  js  c++  java
  • Java字节数组流学习

    字节数组流

    基于内存操作,内部维护着一个字节数组,我们可以利用流的读取机制来处理字符串。无需关闭,不会报IOException。

    • ByteArrayInputStream

    包含一个内部缓冲区,该缓冲区包含从流中读取的字节,内部计数器跟踪read方法要提供的下一个字节。关闭ByteArrayInputStream无效。此类中的方法在关闭流后仍可被调用,而且不会抛IOException。

    • ByteArrayOutputStream

    此类实现了一个输出流,其中的数据被写入一个byte数组,缓冲区会随着数据的不断写入而自动增长,可使用toByteArray()和toString()获取数据。关闭ByteArrayOutputStream无效。此类中的方法在关闭流后仍可被调用,而且不会抛IOException。

    代码示例:
    问题:有一个字符串,我们想把其中的字母全部提取出来

    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    
    import org.junit.Test;
    
    public class ByteArrayDemo {
    	
    	@Test
    	public void byteArray() {
    		String str = "jfkdsls423324@%$^@$@*&JKDHF和";
    	
    		ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());
    		ByteArrayOutputStream baos = new ByteArrayOutputStream();
    
    		int curr = -1;// 每次读取的字节
    		while ((curr = bais.read()) != -1) {
    			if ((curr >= 65 && curr <= 90) || (curr >= 97 && curr <= 122)) {
    				baos.write(curr);
    			}
    		}
    		// 此时无需关闭流,因为字节数组流是基于内存操作的操作流
    		System.out.println(baos);
    	}
    }
  • 相关阅读:
    java 基础语法 2
    hdu4570Multi-bit Trie
    poj1244Slots of Fun
    二维凸包模板
    花神的数论题(数位dp)
    poj1113Wall(凸包)
    poj1066Treasure Hunt(线段相交)
    poj1039Pipe(直线交点、叉积)
    hdu4588Count The Carries
    hdu2475Box(splay树形转线性)
  • 原文地址:https://www.cnblogs.com/zxfei/p/10879815.html
Copyright © 2011-2022 走看看