浅谈JAVA 内存流的实现

所属分类: 软件编程 / java 阅读数: 56
收藏 0 赞 0 分享

掌握内存操作流

输入和输出都是从文件中来的,当然,也可将输出的位置设置在内存上,这就需要ByteArrayInputStream和ByteArrayOutputStream

ByteArrayInputStream:将内容写入到内存中,

ByteArrayOutputStream:将内存中数据输出

此时的操作应该以内存为操作点。

利用此类 完成一些功能。

常用方法

ByteArrayInputStream :是InputStream子类。

public class ByteArrayInputStream extends InputStream

构造方法:

ByteArrayInputStream(byte[] buf) 
     //创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。

接收一个byte数组,实际上内存的输入就是在构造方法上将数据传递到内存之中。

ByteArrayOutputStream:是OutputStream子类

输出就是从内存中写出数据。

public class ByteArrayOutputStream extends OutputStream

构造方法:

ByteArrayOutputStream() 
     创建一个新的 byte 数组输出流。

主要方法:

void write(int b) 
     将指定的字节写入此 byte 数组输出流。 

利用他们,完成一个大小写字母转换顺序的程序。

重温一下这个方法:getBytes();定义如下:返回的是一个byte类型的数组。 

  public byte[] getBytes() {
    return StringCoding.encode(value, 0, value.length);
  }

1,

int size() 
     返回缓冲区的当前大小 

2,

byte[] toByteArray() 
     创建一个新分配的 byte 数组。 

3,

String toString() 
     使用平台默认的字符集,通过解码字节将缓冲区内容转换为字符串。 

利用他们,完成一个大小写字母转换顺序的程序。

String类的大小写转换方法:

 String toLowerCase() 
     使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 

转大写:

String toUpperCase() 
     使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 

如果要想把一个大写边小写,则可以通过包装类,字符的包装类是Character。

static char toLowerCase(char ch) 
     使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。 

代码实例:

注意,跟文件读取不一样,不要设置文件路径。

package 类集;
import java.io.* ;
public class ByteArrayDemo01{
  public static void main(String args[]){
    String str = "HELLOWORLD" ;    // 定义一个字符串,全部由大写字母组成
    ByteArrayInputStream bis = null ;  // 内存输入流
    ByteArrayOutputStream bos = null ;  // 内存输出流
    bis = new ByteArrayInputStream(str.getBytes()) ;  // 向内存中输出内容,注意,没有跟文件读取一样,设置文件路径。
    bos = new ByteArrayOutputStream() ;  // 准备从内存ByteArrayInputStream中读取内容,注意,跟文件读取不一样,不要设置文件路径。
     int temp = 0 ;      while((temp=bis.read())!=-1)     {       char c = (char) temp ; // 读取的数字变为字符        bos.write(Character.toLowerCase(c)) ; // 将字符变为小写      } // 所有的数据就全部都在ByteArrayOutputStream中      String newStr = bos.toString() ; // 因为所有output的数据都在ByteArrayOutputStream实例对象中,所以可以取出内容,将缓冲区内容转换为字符串。
     try{         bis.close() ;         bos.close() ;      }catch(IOException e){         e.printStackTrace() ;     } System.out.println(newStr) ;    } };

实际上以上操作很好体现了对象的多态。通过实例化其子类不同,完成的功能也不同,也就相当于输出的位置不同,

如果是输出文件,则使用FileXxxx类。如果是内存,则使用ByteArrayXxx。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

JavaWeb项目部署到服务器详细步骤详解

这篇文章主要介绍了JavaWeb项目如何部署到服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

IDEA基于支付宝小程序搭建springboot项目的详细步骤

这篇文章主要介绍了IDEA基于支付宝小程序搭建springboot项目的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解SpringBoot应用服务启动与安全终止

这篇文章主要介绍了SpringBoot应用服务启动与安全终止,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring Boot启动及退出加载项的方法

这篇文章主要介绍了Spring Boot启动及退出加载项的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring Data Jpa 自动生成表结构的方法示例

这篇文章主要介绍了Spring Data Jpa 自动生成表结构的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

IDEA中osgi的开发应用指南详解

这篇文章主要介绍了IDEA中osgi的开发应用指南详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解用maven将dubbo工程打成jar包运行

这篇文章主要介绍了详解用maven将dubbo工程打成jar包运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解Java合并数组的两种实现方式

这篇文章主要介绍了Java合并数组的两种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

使用Jenkins Pipeline自动化构建发布Java项目的方法

这篇文章主要介绍了使用Jenkins Pipeline自动化构建发布Java项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

使用Maven配置Spring的方法步骤

这篇文章主要介绍了使用Maven配置Spring的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多