博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA IO操作:数据操作流:DataOutputStream和DataInputStream
阅读量:7054 次
发布时间:2019-06-28

本文共 2812 字,大约阅读时间需要 9 分钟。

掌握DataOutputStream和DataInputStream的作用。

可以使用DataOutputStream和DataInputStream写入和读取数据。

在IO包中提供了两个与平台无关的数据操作流

数据输出流:DataOutputStream

数据输入流:DataInputStream

通常按照一定格式将输入输出,再按照一定格式将数据输入。

要想使用数据输出流和输入流,则肯定要用户指定数据的保存格式。必须按指定的格式保存数据,才可以将数据输入流将数据读取进来。

DataOutputStream

DataOutputStreams是OutputStream的子类。

public class DataOutputStream extends FilterOutputStream implements DataOutput

此类继承自FillterOutputStream类,同时实现DataOutput接口。在DataOutput接口定义了一系列写入各种数据的方法。

DataOutput接口定义了一系列的writeXXX()的操作,可以写入各种类型数据。

 

要想使用DataOutputStream写入数据的话,则必须指定好数据的输出格式。

每一行的数据,通过'n\'完结,每行的各个数据之间通过"\t“完结。

代码示例:

package 类集;import java.io.DataOutputStream ;import java.io.File ;import java.io.FileOutputStream ;public class DataOutputStreamDemo{    public static void main(String args[]) throws Exception{    // 所有异常抛出        DataOutputStream dos = null ;            // 声明数据输出流对象        File f = new File("d:" + File.separator + "order.txt") ; // 文件的保存路径        dos = new DataOutputStream(new FileOutputStream(f)) ;    // 实例化数据输出流对象        String names[] = {"衬衣","手套","围巾"} ;    // 商品名称        float prices[] = {98.3f,30.3f,50.5f} ;        // 商品价格        int nums[] = {3,2,1} ;    // 商品数量        for(int i=0;i

代码生成的文件:

使用DataOutpputStream写入的数据要使用DataInputStream取出进来,

DataInputStream

package 类集;import java.io.DataInputStream ;import java.io.File ;import java.io.FileInputStream ;public class DataInputStreamDemo{    public static void main(String args[]) throws Exception{    // 所有异常抛出        DataInputStream dis = null ;        // 声明数据输入流对象        File f = new File("d:" + File.separator + "order.txt") ; // 文件的保存路径        dis = new DataInputStream(new FileInputStream(f)) ;    // 实例化数据输入流对象        String name = null ;    // 接收名称        float price = 0.0f ;    // 接收价格        int num = 0 ;    // 接收数量        char temp[] = null ;    // 接收商品名称        int len = 0 ;    // 保存读取数据的个数        char c = 0 ;    // '\u0000'        try{            while(true){                temp = new char[200] ;    // 开辟空间                len = 0 ;                while((c=dis.readChar())!='\t'){    // 接收内容,因为直到读取到'\t'才完成了读取一个字符串,未读取到表示还有内容。                    temp[len] = c ;                    len ++ ;    // 读取长度加1                }                name = new String(temp,0,len) ;    // 将字符数组变为String                price = dis.readFloat() ;    // 读取价格                dis.readChar() ;    // 读取\t                num = dis.readInt() ;    // 读取int                dis.readChar() ;    // 读取\n                System.out.printf("名称:%s;价格:%5.2f;数量:%d\n",name,price,num) ;            }        }catch(Exception e){}        dis.close() ;    }};

执行结果:

名称:衬衣;价格:98.30;数量:3名称:手套;价格:30.30;数量:2名称:围巾;价格:50.50;数量:1

可见:

DataInputStream读取字符串,只能通过readchar(),一个个读取,不像DataOutpputStream一样还区分writechars(),writechar()。

 

总结:

两个接口:

DataOutput接口和DataInput接口。两个数据操作流的方法都是继承两个接口的方法,这两个接口的操作,彼此对应,而且以后还要使用。

转载地址:http://azlol.baihongyu.com/

你可能感兴趣的文章
shell 环境变量
查看>>
安装xampp二三事
查看>>
2019-04-09 SpringBoot+Druid+MyBatis+Atomikos 的多数据源配置
查看>>
分解质因数
查看>>
字符型图片验证码识别完整过程及Python实现
查看>>
js,jquery获取url参数
查看>>
Java基础学习总结(36)——Java注释模板
查看>>
erange.heetian.com 回显任意账号
查看>>
OBJ文件格式简介
查看>>
实验三 有限自动机的构造与识别
查看>>
python的学习笔记之——time模块常用内置函数
查看>>
计算机是如何工作的
查看>>
【c++】必须在类初始化列表中初始化的几种情况
查看>>
阿拉伯数字1与英语字母l造成的代码bug
查看>>
深度学习常见的专业术语
查看>>
2018-2019-2 20165334《网络对抗技术》Exp2 后门原理与实践
查看>>
HTML提交方式post和get区别(实验)
查看>>
Java 11.do语句
查看>>
学习理论之感知器与最大间隔分类器
查看>>
Be Nice!要善良
查看>>