Java IO操作——内存操作流{ByteArrayInputStream、ByteArrayOutputStream)
来源:互联网 发布:摩擦纳米发电机 知乎 编辑:程序博客网 时间:2024/06/05 18:08
ByteArrayInputStream和ByteArrayOutputStream
之前的程序中,输出输入都是从文件中来的,当然,也可以将输出的位置设置在内存之上。此时就要使用ByteArrayInputStream、ByteArrayOutputStream来完成输入、输出的功能了。
ByteArrayInputStream的主要功能是完成将内容写入到内存之中,而ByteArrayOutputStream的主要功能是将内存中的数据输出。
此时操作的时候就应该以内存为操作点。
操作步骤如下:
利用此类完成一些功能
ByteArrayInputStream
ByteArrayOutputStream
构造方法:
public ByteArrayInputStream(byte[] buf)
创建一个ByteArrayInputStream,使用buf作为缓冲区数组,实际上内存的输入就是在构造方法上将数据传入到内存之中。
ByteArrayOutputStream:输出就是从内存中写出数据。
利用public void write(int b) 利用它完成一个大小写字母转换的程序,实例如下:
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() ;// 取出内容try{bis.close() ;bos.close() ;}catch(IOException e){e.printStackTrace() ;}System.out.println(newStr) ;}};
如果想把一个字符变为小写,则可以通过包装类:Character
总结:
1、内存操作流的操作对象一定是以内存为准,不要以程序为准
2、实际上此时可以通过向上转型的关系为OutputStream或InputStream实例化
import java.io.* ;public class ByteArrayDemo01{public static void main(String args[]) throws Exception{String str = "HELLOWORLD" ;// 定义一个字符串,全部由大写字母组成InputStream bis = null ;// 内存输入流OutputStream 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() ;// 取出内容try{bis.close() ;bos.close() ;}catch(IOException e){e.printStackTrace() ;}System.out.println(newStr) ;}};实际上,以上的操作可以很好的体现对象的多态性,通过实例化其子类的不同,完成的功能也不同,也就相当于输出的位置也不同,如果是文件则使用FileXxx,如果是内存,则使用ByteArrayXxx
内存输入听说在后面JAVA开发中也是经常要使用到的,需要重点掌握。
0 0
- Java IO操作——内存操作流{ByteArrayInputStream、ByteArrayOutputStream)
- Java IO--内存操作流ByteArrayInputStream/ByteArrayOutputStream
- 【Java基础知识】IO流--内存操作流ByteArrayInputStream、ByteArrayOutputStream
- java--内存流操作 ByteArrayInputStream ByteArrayOutputStream
- 黑马程序员——【Java】IO——操作字符数组的IO对象:ByteArrayInputStream & ByteArrayOutputStream
- Java IO - ByteArrayInputStream&ByteArrayOutputStream
- Java操作字节数组的流ByteArrayInputStream与ByteArrayOutputStream
- java ByteArrayInputStream和ByteArrayOutputStream基本操作
- Java IO 系列源码分析——ByteArrayInputStream和ByteArrayOutputStream
- java 内存操作流ByteArrayOutputStream
- 黑马程序员——Java IO—字节流—ByteArrayInputStream和ByteArrayOutputStream
- 17.Java IO: ByteArrayInputStream && ByteArrayOutputStream
- Java IO ByteArrayInputStream和ByteArrayOutputStream
- java IO笔记(ByteArrayInputStream/ByteArrayOutputStream)
- Java IO系列1 字节流之ByteArrayInputStream与ByteArrayOutputStream
- Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream
- 操作数组的流 ByteArrayInputStream 和 ByteArrayOutputStream的简单介绍
- JAVA IO系列----ByteArrayInputStream和ByteArrayOutputStream类
- kafka 单节点快速运用
- 工作遇到问题笔记
- 使用Microsoft Visual Studio Code配置代理服务器的方法
- SDUT 1479 数据结构实验之栈:行编辑器
- Linux网络编程入门 (转载)
- Java IO操作——内存操作流{ByteArrayInputStream、ByteArrayOutputStream)
- 详解Android中AsyncTask的使用
- java synchronized关键字的用法
- J2EE-session在浏览器关闭后失效问题
- 谁都需要成就感二
- 一个通用高自由度技能系统的设计(二) Data基类设计
- java中的字符串
- 图片的压缩
- 对象容器 ArrayList HashSet HashMap