java核心技术之IO流(六)DataInputStream和DataOutputStream

这里写图片描述

说明

DataInputStream和DataOutputStream允许应用程序以与机器无关的方式从底层输入流中读取基本的java数据类型。也就是说,当读取一个数据时,不必关心这个数值是什么字节。

关键方法

DataInputStream

构造方法:
DataInputStream(InputStream in)
读取数据:
readBoolean()
readByte()
readChar()
readInt()
readFloat()
readDouble()

DataOutputStream

构造方法:
DataOutputStream(OutputStream out)

写入数据的方法:
writeBoolean(boolean v)
writeByte(int v)
writeChar(int v)
writeInt(int v)
writeFloat(float v)
writeDouble(double v)

使用Demo

这个Demo是一个使用DataOutputStream向文件中存取数据和使用DataInputStream从文件中读取数据的样例:

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataInputStreamDataOutputStream {

    public static void testDataInputStream(){
        DataInputStream dis = null;
        try {
            File fin = new File("DataInputOutputStream.txt");
            FileInputStream fis = new FileInputStream(fin);
            dis = new DataInputStream(fis);

            System.out.println(dis.readInt());
            System.out.println(dis.readBoolean());
            System.out.println(dis.readFloat());
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(dis != null){
                try {
                    dis.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }   
            }
        }
    }

    //测试DataOutputStream
    public static void testDataOutputStream(){

        DataOutputStream dos = null;
        try {
            File fout = new File("DataInputOutputStream.txt");
            FileOutputStream fos = new FileOutputStream(fout);
            dos = new DataOutputStream(fos);
            dos.writeInt(1);
            dos.writeBoolean(true);
            dos.writeFloat((float) 1.203);          
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(dos != null){
                try {
                    dos.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }   
            }
        }
    }
}

调用方式:

//测试DataOutputStream
DataInputStreamDataOutputStream.testDataOutputStream();

//测试DataInputStream
DataInputStreamDataOutputStream.testDataInputStream();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hfreeman2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值