java拓展----資料流
阿新 • • 發佈:2018-11-24
目錄
1.資料流簡介
2.資料輸出流的基本運用
3.資料輸入流的基本運用
一、資料流簡介
資料流用到的java中的DataInputStream和DataOutputSteam這兩個流。從這兩個流的型別來看,這兩個流是屬於位元組流的。
java官方對資料流的定義是:資料流允許應用程式以與機器無關方式從底層輸入(輸出)流中讀取基本 Java 資料型別。
資料流的輸入寫入的資料和讀出來的資料需要按照相同順序讀取。
二、資料輸出流的基本使用
資料輸出流與基本的讀寫不同,它能指定讀寫的資料型別。
一下是資料輸出流的Demo:
1package 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 }