關於FileInputStream和FileOutputStream輸入流與輸出流問題
阿新 • • 發佈:2019-02-19
輸入流,輸出流到底是怎麼來分辨,在寫程式碼的時候經常會遇到問題,或者經常混淆找兩個流的關係。通過今天的學習做個筆記,也提供給大家來學習,同時提出我的問題。
書上說
輸入流:只能從中讀取資料,不能向其寫入資料。
輸出流:只能向其寫入資料,不能從中讀取資料。
所以我有個疑問,這個流到底是個什麼玩意???
書上給流的定義是: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)向其中寫入資料。
這樣的話抽象的流也就容易理解了。
希望有更好見解的在下面寫出自己的簡介,供大家學習。
這篇文章寫得有些不明確,我又寫了一篇文章,大家看而已去看一下,就能清晰地理解什麼是輸入輸出流了。