1. 程式人生 > >IO知識點(二)—— 什麼Java 的流 STREAM?

IO知識點(二)—— 什麼Java 的流 STREAM?

什麼是流(Stream),流就是一系列的資料

 

1,什麼是流

流是一個抽象的概念。當Java程式需要從資料來源讀取資料時,會開啟一個到資料來源的流,資料來源可以是檔案、記憶體或者網路等。同樣,當程式需要輸出資料到目的地時也一樣會開啟一個流,資料目的地也可以使檔案、記憶體或者網路等。流的建立是為了更方便地處理資料的輸入輸出。

比如讀取檔案的資料到程式中,站在程式的角度來看,就叫做輸入流
輸入流: InputStream
輸出流:OutputStream


流的分類:

按流的方向不同:輸入流,輸出流

按處理資料的單位不用:位元組流,字元流

按功能不同:節點流,處理流

  位元組流 字元流
輸入流 InputStream Reader
輸出流 OutoutStream Writer

 

 

 

 

在Java語言中,控制資料流的類都放在java.io包中,java.io包中有兩大繼承體系

  • 以byte位元組處理為主的Stream類,它們的命名方式是:xxxStream
  • 以字元處理為主的Reader/Writer類,它們的命名方式是:xxxReader或xxxWriter

InputStream、OutputStream、Reader、Writer這四個類,是這兩大繼承體系的父類

2,檔案輸入流

如下程式碼,就建立了一個檔案輸入流,這個流可以用來把資料從硬碟的檔案,讀取到JVM(記憶體)。

目前程式碼只是建立了流,還沒有開始讀取,真正的讀取在下個章節講解。

public class AtWill {
 
    public static void main(String[] args) {
        try {
            File f = new File("H:\\碼雲project\\test1.txt");
            // 建立基於檔案的輸入流
            FileInputStream fis = new FileInputStream(f);
            // 通過這個輸入流,就可以把資料從硬碟,讀取到Java的虛擬機器中來,也就是讀取到記憶體中
 
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

 


參考來源於:

http://how2j.cn/k/io/io-bytestream/340.html

https://blog.csdn.net/hashsound_Wang/article/details/8117779