Fork me on GitHub

java拓展----数据流

目录

  1.数据流简介

  2.数据输出流的基本运用

  3.数据输入流的基本运用

一、数据流简介

 

  数据流用到的java中的DataInputStream和DataOutputSteam这两个流。从这两个流的类型来看,这两个流是属于字节流的。

java官方对数据流的定义是:数据流允许应用程序以与机器无关方式从底层输入(输出)流中读取基本 Java 数据类型。

数据流的输入写入的数据和读出来的数据需要按照相同顺序读取。

二、数据输出流的基本使用

 

  数据输出流与基本的读写不同,它能指定读写的数据类型。

一下是数据输出流的Demo:

 1 package com.demo.io;
 2 /**
 3  * 数据输出流
 4  */
 5 import java.io.ByteArrayOutputStream;
 6 import java.io.DataOutputStream;
 7 import java.io.IOException;
 8 
 9 public class DataStreamDemo {
10     public static void main(String[] args) throws IOException {
11         //写入
12         //创建一个字节数组输出流,将数据输出到数组中
13         ByteArrayOutputStream bos = new ByteArrayOutputStream();
14         //创建数据输出流
15         DataOutputStream dos = new DataOutputStream(bos);
16         //写入数据
17         dos.writeBoolean(true);
18         dos.writeUTF("这是编码");
19         dos.writeInt(233);
20         dos.writeDouble(12.3);
21         dos.flush();
22     }
23 }

三、数据输入流

 

  数据输入流能够读取java中的基本数据类型。但是读取数据的顺序需要与写入数据的顺序一样,否则会出现EOFException

一下是数据输入流的Demo

 1 package com.demo.io;
 2 /**
 3  * 数据输出流
 4  */
 5 import java.io.ByteArrayInputStream;
 6 import java.io.ByteArrayOutputStream;
 7 import java.io.DataInputStream;
 8 import java.io.DataOutputStream;
 9 import java.io.IOException;
10 
11 public class DataStreamDemo {
12     public static void main(String[] args) throws IOException {
13         //写入
14         //创建一个字节数组输出流,将数据输出到数组中
15         ByteArrayOutputStream bos = new ByteArrayOutputStream();
16         //创建数据输出流
17         DataOutputStream dos = new DataOutputStream(bos);
18         //写入数据
19         dos.writeBoolean(true);
20         dos.writeUTF("这是编码");
21         dos.writeInt(233);
22         dos.writeDouble(12.3);
23         dos.flush();
24         //读取
25         //数据源
26         byte[] b = bos.toByteArray();
27         //创建字节数组输入流,数据源是刚刚写入的数组
28         ByteArrayInputStream bis = new ByteArrayInputStream(b);
29         //创建数据输入流
30         DataInputStream dis = new DataInputStream(bis);
31         //读取数据
32         boolean boo = dis.readBoolean();
33         String utf = dis.readUTF();
34         int i = dis.readInt();
35         double db = dis.readDouble();
36         System.out.println("boolean:"+boo+"utf:"+utf+"double:"+db+"int:"+i);
37     }
38 }

 

posted @ 2018-11-24 16:15  Banana_Fish  阅读(295)  评论(0编辑  收藏  举报