IO知識點(二)—— 什麼Java 的流 STREAM?
阿新 • • 發佈:2018-12-10
什麼是流(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