程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java I/O 幾個重要流的應用,java

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

編輯:JAVA綜合教程

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved