(93)DataStream(操作基本数据类型)、ByteArrayStream(操作字节数组)
来源:互联网 发布:网络销售投资 编辑:程序博客网 时间:2024/06/05 15:43
一、DataInputStream、DataOutputStream可以用于操作基本数据类型数据的流对象
//写入 DataOutputStream dos=new DataOutputStream(new FileOutputStream("E:\\a.txt")); dos.writeInt(235); dos.writeBoolean(true); dos.writeDouble(9887.543); dos.close();//读出 DataInputStream dis=new DataInputStream(new FileInputStream("E:\\a.txt")); int i=dis.readInt(); boolean b=dis.readBoolean(); double d=dis.readDouble(); System.out.println("i="+i); System.out.println("b="+b); System.out.println("d="+d); dis.close();//操作基本数据类型就用DataStream,若用普通的字节流,那么操作非常麻烦,以读举例:首先需要数组缓冲区,然后读出的字符串,再将字符串转换为整数类型,这些操作,在DataInputStream的readalnt方法中已经封装在函数体内实现了,无论是读还是写都很方便!!!
public final void writeUTF(String str)throws IOException以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。
public final String readUTF() throws IOException
//写 DataOutputStream dos=new DataOutputStream(new FileOutputStream("E:\\utfdata.txt")); dos.writeUTF("你好"); dos.close();//读 DataInputStream dis=new DataInputStream(new FileInputStream("E:\\utfdata.txt")); String str=dis.readUTF(); System.out.println(str);//注意用DataOutputStream写的文件,必须用 DataInputStream来读。
//利用转换流写文件(字符-->字节) OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("E:\\a.txt"),"UTF-8"); osw.write("你好"); osw.close();
* 二、ByteArrayInputStream、ByteArrayOutputStream操作字节数组*
ByteArrayInputStream:在构造的时候,需要接收数据源,而且数据源是一个字节数组。
ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组,这就是数据目的地。
因为这两个流对象都是操作的数组,并没有使用系统资源,所以不需要.close()关闭。
在流操作规律的讲解时:
源设备:键盘(System.in)、硬盘FileStream、内存ArrayStream
目的设备:控制台(System.out)、硬盘FileStream、内存ArrayStream
需要注意的是它和其他的Stream不同,要先写源ByteArrayInputStream(即先有数组),再通过流的写入方法,将源数据写入ByteArrayOutputStream中。这和自己手动建立byte[]数组的好处是:①ByteStream封装好可以直接用,比如判断(by=bis.read())!=-1,不用自己手动写长度=-1②对数组的操作:获取和设置,反映到IO就是读和写,利用流的思想来操作数组。在流中已经方便了读写,所以操作简单,而且高效
//数据源 bis=new ByteArrayInputStream("ABCDE".getBytes()); //数据目的 ByteArrayOutputStream bos=new ByteArrayOutputStream(); int by=0; while((by=bis.read())!=-1) { bos.write(by); } System.out.println(bos.size()); System.out.println(bos.toString()); //将数组写入文件 bos.writeTo(new FileOutputStream("E:\\A.txt"));
public void writeTo(OutputStream out) throws IOException将此 byte 数组输出流的全部内容写入到指定的输出流参数中。
理解了这个原理,CharArrayReader 和 CharArrayWriter(操作字符数组) StringReader和StringWriter都是以上的原理。
- (93)DataStream(操作基本数据类型)、ByteArrayStream(操作字节数组)
- java IO 操作字节数组 ByteArrayStream
- 操作基本数据类型的流对象DataStream
- ByteArrayStream用于操作字节数组的流对象
- IO流——操作字节数组ByteArrayStream
- 黑马程序员:操作基本数据类型的流对象DataStream
- Java操作基本数据类型的流对象DataStream
- IO流(操作基本数据类型的流对象DataStream)
- 黑马程序员:操作基本数据类型的流对象DataStream
- IO(打印流、序列流、ObjectStream、管道流、RandomAccessFile、DataStream、ByteArrayStream)
- 操作基本数据类型,字节数组的流 和 字符编码
- java IO操作与字节流(八)过滤流输入输出基本数据类型
- 黑马程序员_IO流——操作基本数据类型的流对象DataStream
- Java基础——对象序列化+管道流+RandomAccessFile+操作基本数据类型的DataStream等
- 树状数组(基本操作)
- SQL的基本操作(1.数据类型)
- MATLAB基本操作(三):数据类型
- MATLAB基本操作(三):数据类型
- c++强制类型转换补充
- 输入一个正整数数组,输入一个正整数数组,把数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- Python安装配置教程
- 羊皮卷之八
- React Native 第二天
- (93)DataStream(操作基本数据类型)、ByteArrayStream(操作字节数组)
- python selenium 1
- MySQL 插入数据
- VC中串口使用的详细解答--包括串口编程的流程
- Rails 入门 —— 新建一个blog程序
- java 使用面向对象方式实现录入学生信息,取出成绩最大值、最小值、平均值、对其进行排序
- 剑指Offer:二叉树的深度(一刷)
- iconfont 实践及使用优化
- 4412驱动实验之06 设备注册