1. 程式人生 > >關於FileInputStream和FileOutputStream輸入流與輸出流問題

關於FileInputStream和FileOutputStream輸入流與輸出流問題

輸入流,輸出流到底是怎麼來分辨,在寫程式碼的時候經常會遇到問題,或者經常混淆找兩個流的關係。通過今天的學習做個筆記,也提供給大家來學習,同時提出我的問題。

書上說
輸入流:只能從中讀取資料,不能向其寫入資料。
輸出流:只能向其寫入資料,不能從中讀取資料。

 所以我有個疑問,這個流到底是個什麼玩意???

書上給流的定義是:Java中把不同的輸入/輸出源(鍵盤、檔案、網路連線等)抽象的標書為“流”。所以,流就是鍵盤、檔案、網路連線等只不過被抽象了而已。

那麼就以FileInputStream和FileOutputStream為例,來分辨什麼是流?什麼是輸入流?什麼是輸出流?
 public
static void Test1() throws Exception{ FileInputStream fileInputStream = new FileInputStream("F:\\Demo\\1.txt"); //建立輸出流 FileOutputStream fos = new FileOutputStream("F:\\Demo\\2.txt"); //定義字元用來接收檔案中讀取的資料 byte[] bbuf = new byte[100]; //定義一個hasRead來確定讀到資料的個數 int
hasRead = 0; String line = ""; while ((hasRead = fileInputStream.read(bbuf)) > 0){ System.out.println(new String(bbuf , 0 , hasRead)); //將流中讀到的資料寫入到fos流中去 fos.write(bbuf); } //關閉輸入流 fileInputStream.close(); fos.close(); }
這段程式碼的作用很簡單,就是從輸入流中讀取資料,然後寫入到輸出流中去。
那麼這個 輸入流 就是1.txt。輸出流 就是2.txt
正如前面輸入流和輸出流定義一樣,輸入流(1.txt)從中讀取資料。輸出流(2.txt)向其中寫入資料。
這樣的話抽象的流也就容易理解了。

希望有更好見解的在下面寫出自己的簡介,供大家學習。

這篇文章寫得有些不明確,我又寫了一篇文章,大家看而已去看一下,就能清晰地理解什麼是輸入輸出流了。