Java I/O 幾個重要流的應用,java

來源:互聯網
上載者:User

Java I/O 幾個重要流的應用,java

IO流程圖

 掌握13個Io流

 

一、FileInputStream 和 FileoutputStream

FileInputStream:檔案的讀取

 1 public class readers 2 { 3     public static void main(String[] args) throws Exception 4     { 5         File file = new File("F:\\java\\workspace\\Fanshe\\src\\com\\cyg\\fanshe.java");//讀取檔案 6         FileInputStream fi = new FileInputStream(file);//建立位元組流,開啟該 檔案 7         byte[] b = new byte[fi.available()];//fi.available 可以擷取檔案佔多少位元組 8         int a = -1; 9         while((a= fi.read(b))!= -1)//判斷檔案是否到達檔案末尾10         {11             //System.out.println(new String(b));12         }13         System.out.println(new String(b));14         //關閉流15         fi.close();16         17     }18 }

FileoutputStream:檔案的寫入

 1 public class output 2 { 3     public static void main(String[] args) throws Exception 4     { 5         File file = new File("F:\\a.txt"); 6         FileOutputStream out = new FileOutputStream(file); 7         out.write("abmin".getBytes()); 8         out.flush();//清楚緩衝 9         out.close();//關閉流10     }    11 }

 

二、BufferedInputStream 和 BufferedOutputStream 

BufferedInputStream  是一個緩衝流

作用:為另一個輸入資料流添加一些功能,即緩衝輸入以及支援 mark (標記)和 reset 重設方法的能力,是通過一個內部緩衝區數組實現的。

 

 1 public class buffertream 2 { 3     public static void main(String[] args) throws Exception 4     { 5         FileInputStream in = new FileInputStream("E:\\win10 64\\vmware.log"); 6         BufferedInputStream bu = new BufferedInputStream(in); 7         FileOutputStream out = new FileOutputStream("E:\\a.txt"); 8         BufferedOutputStream bo = new BufferedOutputStream(out); 9         10         byte[] b = new byte[1024];11         int a = bu.read(b);12         while(a != -1)13         {14             //System.out.println(Arrays.toString(b));15             bo.write(b, 0, a);16             a = bu.read(b);17         }18         in.close();19         bu.close();20         21         bo.flush();22         out.close();23         bo.close();24     }25 }

運行結果如下

 

三、DataOutputStream 和 DataInputStream

是一個資料輸入流 它繼承FilterInputStream,用來裝飾其他輸入資料流

 1 public class adtastream 2 { 3     public static void main(String[] args) throws Exception 4     { 5         FileOutputStream out = new FileOutputStream("E:\\b.txt"); 6         DataOutputStream dot = new DataOutputStream(out);//過濾流必須要有一個節點流 7          8         //寫入資料 9         dot.writeInt(10);10         dot.writeBytes("admin");11         dot.writeChar('a');12         dot.writeBoolean(true);13         14         out.flush();15         out.close();16         dot.close();17         18         FileInputStream in = new FileInputStream("E:\\b.txt");19         DataInputStream di = new DataInputStream(in);    20         21         //讀取資料的時候要和寫入的順序一樣 不然破壞結構22         System.out.println(di.readInt());23         System.out.println(di.readByte());24         System.out.println(di.readChar());25         System.out.println(di.readBoolean());26     }27 }

 

 

四、ByteArrayInputStream 和 ByteArrayOutputStream

ByteArrayInputStream 專門用來讀取記憶體中的資料 

 1 public class bytestream 2 { 3     public static void main(String[] args) throws Exception 4     { 5         ByteArrayOutputStream out = new ByteArrayOutputStream(); 6         String str = "admin"; 7         out.write(str.getBytes()); 8         byte [] b = new byte[200]; 9         ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes());//ByteArrayInputStream: 專門用來從內從中讀取資料的流10         in.read(b);11         System.out.println(Arrays.toString(b));12     }13 }

列印出來是damin所對應的系統底層源碼

 

五、ObjectInputStream 和 ObjectoutputStream

 

六、BufferedReader 和 BufferedWriter

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.