数据流ByteArray[out/Input]Stream《搭配》内存流Data[out/input]Stream的使用

    @Test
    public void t3() {
//        数据输入流
        ByteArrayInputStream byteArrayInputStream = null;
//        数据输出流
        ByteArrayOutputStream byteArrayOutputStream = null;
//        内存输出流
        DataInputStream dataInputStream = null;
//        内存输入流
        DataOutputStream dataOutputStream = null;
        try {
//            内存IO流,读取时,需要按照写入的顺序去读取
//            创建数据,输出流
            byteArrayOutputStream = new ByteArrayOutputStream();
//            将数据输出流,包装成内存输出流
            dataOutputStream = new DataOutputStream(byteArrayOutputStream);

//            利用内存输出流,将数据输出到内存中
            dataOutputStream.writeInt(12345);// Int:4字节
            dataOutputStream.writeFloat(12.4F);// Float:4字节
            dataOutputStream.writeBoolean(true);// boolean:1字节

//            获取数据输出流,的字符数组,传入到,数据输入输出流
            byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
//            将数据数组输入流,包装成内存输入流
            dataInputStream = new DataInputStream(byteArrayInputStream);

//            利用内存输入流获取,输出到内存的数据
            System.out.println(dataInputStream.available());//打印缓存的长度 = 9
            System.out.println(dataInputStream.readInt());
            System.out.println(dataInputStream.readFloat());
            System.out.println(dataInputStream.readBoolean());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (byteArrayInputStream != null) {
                try {
                    byteArrayInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (byteArrayOutputStream != null) {
                try {
                    byteArrayOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (dataInputStream != null) {
                try {
                    dataInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (dataOutputStream != null) {
                try {
                    dataOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

内存流的方法:

intCount(int value),数据输出流增加的字节数.
write(int b),将int类型的b写到数据输出流中.
write(byte b[],int off, int len),将字节数组b中off位置开始,len个长度写到数据输出流中.
flush(),刷新数据输出流.
writeBoolean(),将布尔类型的数据写到数据输出流中,底层是转化成一个字节写到基础输出流中.
writeByte(int v),将一个字节写到数据输出流中(实际是基础输出流).
writeShort(int v),将一个short类型的数据写到数据输出流中,底层将v转换2个字节写到基础输出流中.
writeChar(int v),将一个charl类型的数据写到数据输出流中,底层是将v转换成2个字节写到基础输出流中.
writeInt(int v),将一个int类型的数据写到数据输出流中,底层将4个字节写到基础输出流中.
writeLong(long v),将一个long类型的数据写到数据输出流中,底层将8个字节写到基础输出流中.
writeFloat(flloat v),将一个float类型的数据写到数据输出流中,底层会将float转换成int类型,写到基础输出流中.
writeDouble(double v),将一个double类型的数据写到数据输出流中,底层会将double转换成long类型,写到基础输出流中.
writeBytes(String s),将字符串按照字节顺序写到基础输出流中.
writeChars(String s),将字符串按照字符顺序写到基础输出流中.
writeUTF(String str),以机器无关的方式使用utf-8编码方式将字符串写到基础输出流中.
size(),写到数据输出流中的字节数.

运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值