嗨嘍,小樂又來了,今天要給大家送上的技術文章是Java重點知識-IO流。
先來看看IO流的思維導圖吧。
一、 File
在Java中,Everything is Object!所以在文件中,也不例外!在Java中,可以用 File類來表示一個與硬盤上文件聯繫!!!注意:
1、File僅代表一個聯繫,可能文件存在,也可能不存在;
2、這裏的文件可以是文件,也可以是文件夾;
在常用類中已經詳細講過File,此處不在講解
二、 IO流
1、流概念
流即流動、流向,從一端流向另一端。如水流:從山裏流向到人家;車流:從公司流動到
家裏;聲音流:從發出者流動到對方的耳朵裏。
文件流:從一端流動到另一端,即從java內存流動到存儲介質中。存儲介質包括:硬盤文件、數據庫與網絡等節點(數據源)。記住:一切以java內存爲中心。
2、 數據源
data source. 提供原始數據的原始媒介。常見的:數據庫、文件、其他程序、內存、網絡連接、IO設備。
數據源就像水箱,流就像水管中流着的水流,程序就是我們最終的用戶。 流是一個抽象、動態的概念,是一連串連續動態的數據集合。
3、IO流分類
由此可見,IO流很龐大,從不同角度進行分類
1)、數據分類
按處理數據單位分爲:字節流和字符流。處理數據是音頻、視頻、doc、文本等一切爲字節流,僅能處理文本的爲字符流。 字節流和字符流的用法幾乎完全一致,區別在於它們所操作的數據單元不同,字節流(8 位)、字符流(16 位),字節流主要由 InputStream 和OutputStream作爲基類,字符流主要由Reader 和 Writer作爲基類。
2)、流向分類
輸入流和輸出流。從節點到 java 內存叫輸入流,從 java 內存到節點叫輸出流。Java 的輸入流主要由InputStream和Reader作爲基類,輸出流主要由OutputStream和Writer作爲基類。
3)、功能分類
節點流和處理流。從/向一個特定的I/0設備(磁盤、網絡等)讀寫數據的流稱爲節點流,也常被稱爲低級流。 處理流則對於一個已存在的節點流進行連接或封裝,常被稱爲高級流(裝飾器設計模式)。處理流爲增強、提升性能的,本身不具備直接操作節點的能力。如擴音器,就是放大聲音的。 節點流處於io操作的第一線,所有操作必須通過他們進行;處理流可以對其他流 進行處理(提高效率或操作靈活性).
處理流的功能主要體現在:
a、性能的提高:主要以增加緩衝的方式來提高輸入/輸出的效率 ;
b、操作的便捷:提供了系列便捷的方法來一次輸入/輸出大批量內容。
4、重點掌握
使用流抽象的概念,屏蔽了實際的 I/O設備中處理數據的細節。
5、操作 IO流的步驟
操作IO就跟搬家是同一個道理
核心步驟如下
1)、建立聯繫
2)、選擇流
3)、操作:寫出 讀取
4)、釋放資源(程序中打開的文件 IO 資源不屬於內存中的資源,垃圾回收無法回收,
需要顯示關閉。)
好勒,關於IO流的概念和基礎知識點就先講到這,接下來請看IO流的主要內容:輸入流和輸出流。樂字節原創,請多關注樂字節。