Java中資料輸入輸出流——DataInputStream和DataOutputStream

科技探索者發表於2017-11-22

一、基本概念

DataOutputStream
資料輸出流允許應用程式以適當方式將基本 Java 資料型別寫入輸出流中。然後應用程式可以使用資料輸入流將資料讀入。

DataOutputStream
資料輸入流允許應用程式以與機器無關方式從底層輸入流中讀取基本 Java 資料型別。應用程式可以使用資料輸出流寫入稍後由資料輸入流讀取的資料。對於多執行緒訪問不一定是安全的。 執行緒安全是可選的,它由此類方法的使用者負責。

 

二、例子

 


  1. /**  
  2.  * 必須先使用DataOutputStream寫入資料,然後使用DataInputStream讀取資料方可。  
  3.  *   
  4.  * @author 徐越  
  5.  *   
  6.  */ 
  7. public class TestClass  
  8. {  
  9.     public static void main(String[] args) throws Exception  
  10.     {  
  11.         TestClass t = new TestClass();  
  12.         t.write();  
  13.         t.read();  
  14.     }  
  15.  
  16.     public void write() throws Exception  
  17.     {  
  18.         String path = this.getClass().getClassLoader().getResource(“test.txt”).toURI().getPath();  
  19.         OutputStream os = new FileOutputStream(path);  
  20.         DataOutputStream dos = new DataOutputStream(os);  
  21.         dos.writeDouble(Math.random());  
  22.         dos.writeBoolean(true);  
  23.         dos.writeInt(1000);  
  24.         dos.writeInt(2000);  
  25.         dos.flush();  
  26.         os.close();  
  27.         dos.close();  
  28.     }  
  29.  
  30.     public void read() throws Exception  
  31.     {  
  32.         InputStream instream = this.getClass().getClassLoader().getResourceAsStream(“test.txt”);  
  33.         DataInputStream dis = new DataInputStream(instream);  
  34.         double d = dis.readDouble();  
  35.         boolean b = dis.readBoolean();  
  36.         // 先寫的先被讀出來  
  37.         int i1 = dis.readInt();  
  38.         int i2 = dis.readInt();  
  39.         instream.close();  
  40.         dis.close();  
  41.         System.out.println(d);  
  42.         System.out.println(b);  
  43.         System.out.println(i1);  
  44.         System.out.println(i2);  
  45.     }  

輸出結果

0.4683893857027681

true

1000

2000

本文轉自IT徐胖子的專欄部落格51CTO部落格,原文連結http://blog.51cto.com/woshixy/1099035如需轉載請自行聯絡原作者


woshixuye111


相關文章