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);
    	}
    }
  • 相关阅读:
    实现一个简易的Spring MVC
    解决IntelIij DEA控制台乱码
    01、SpringBoot中关于tomcat的一些常用配置
    Java动态代理的简单实现
    MVVM中viewmodel的理解
    eclipse常用快捷键
    导入mysql报错问题
    mysql主从配置思路
    rpm安装jdk7
    13个开源GIS软件 你了解几个?
  • 原文地址:https://www.cnblogs.com/zxfei/p/10879815.html
Copyright © 2011-2022 走看看