1. 程式人生 > >java拓展----資料流

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 }