IO流概述

前言

最近老師使用了一週的時間將IO流講完了,爲了避免辜負他的心血,將IO分爲多個部分進行總結整理,供你們學習參考,也方便本身複習使用!數組

流概念

  流是個抽象的概念,bai是對輸入輸出設備的抽象,Java程序中,對於數據的輸入/輸出操做都是以「流」的方式進行。設備能夠是文件,網絡,內存等。
  流具備方向性,至因而輸入流仍是輸出流則是一個相對的概念,通常以程序爲參考,若是數據的流向是程序至設備,咱們成爲輸出流,反之咱們稱爲輸入流。
  能夠將流想象成一個「水流管道」,水流就在這管道中造成了,天然就出現了方向的概念。網絡

IO流概述

當程序須要從某個數據源讀入數據的時候,就會開啓一個輸入流,數據源能夠是文件、內存或網絡等等。相反地,須要寫出數據到某個數據源目的地的時候,也會開啓一個輸出流,這個數據源目的地也能夠是文件、內存或網絡等等。ide

IO流分類

按照數據流向

輸入流:從外界(鍵盤、網絡、文件…)讀取數據到內存
輸出流:用於將程序中的數據寫出到外界(顯示器、文件…)
數據源 目的地學習

按照數據類型

字節流:主要用來處理字節或二進制對象。
字節輸入流(InputStream)
字節輸出流 (OutputStream)
字符流:主要用來處理字符、字符數組或字符串。
字符輸入流(Reader)
字符輸出流(Writer)對象

按照功能類型

節點流:從一個特定的數據源讀寫數據。從一個特定的數據源讀寫數據。
處理流:「鏈接」在已存在的流(節點流或處理流)之上經過對數據的處理爲程序提供更爲強大的讀寫功能。圖片

字節流和字符流的區別:

讀寫單位不一樣:字節流以字節(8bit)爲單位,字符流以字符爲單位,根據碼錶映射字符,一次可能讀多個字節。
處理對象不一樣:字節流能處理全部類型的數據(如圖片、avi等),而字符流只能處理字符類型的數據。
選取:只要是處理純文本數據,就優先考慮使用字符流,除此以外都使用字節流。內存

總結

本篇主要是將流的概述以及io流的分類進行總結一下,下面將對每種進行具體聊!字符串

相關文章
相關標籤/搜索