目录
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 }