文件(file)和流(stream)既有區別又有聯系。文件是在各種媒質上(可移動磁盤、硬盤、CD等)永久存儲的數據的有序集合。它是一種進行數據讀寫操作的基本對象。通常情況下文件按照樹狀目錄進行組織,每個文件都有文件名、文件所在路徑、創建時間、訪問權限等屬性。
從概念上講,流非常類似於單獨的磁盤文件,它也是進行數據讀取操作的基本對象。流為我們提供了連續的字節流存儲空間。雖然數據實際存儲的位置可以不連續,甚至可以分布在多個磁盤上,但我們看到的是封裝以後的數據結構,是連續的字節流抽象結構。這和一個文件也可以分布在磁盤上的多個扇區一樣。
除了和磁盤文件直接相關的文件流以外,流有多種類型,流可以分布在網絡中、內存中或者是磁帶中。