Java IO流簡介
Java中的流是什麼?
java中的流是一個抽象的概念,在java的程式中需要把檔案從一個裝置傳輸到另一個裝置上,這個裝置可以是記憶體,程式,檔案,網路。把在這些之間傳輸的叫做流。官方的解釋:流是一組有順序的,有起點和終點的位元組集合,是對資料傳輸的總稱或抽象。即資料在兩裝置間的傳輸稱為流,流的本質是資料傳輸,根據資料傳輸特性將流抽象為各種類,方便更直觀的進行資料操作。好比兩個池塘之間的水流,一個池塘的水要到另一個池塘,就要有水流。
java IO流的分類:
- 根據傳輸處理的資料單位不同分為:位元組流,字元流
傳輸的資料單位一個是位元組(8個二進位制位8bit)(byte),字元流傳輸的單位為字元,一個字元可能由多個位元組組成,一次可以傳輸多個位元組。在傳輸檔案上位元組可以傳輸,影象,視訊,音訊檔案,這些檔案都是以位元組為單位。對於字元流只能處理由字元為單位的檔案,如純文字組成的檔案,當字元組成的檔案由位元組流傳輸的時候,由於讀取的時候是按照位元組讀取,但是例如一個漢字可能由兩個字元組成,可能由三個字元組成,在拆分成位元組後再組合就能出現亂碼。具體檔案選擇具體處理的流。
- 根據傳輸資料的方向不同可分為:輸入流,輸出流
在用輸入流和輸出流的時候,輸入流只能進行讀操作,輸出流只能進行寫操作
- 根據功能不同可以分為:處理流,節點流
節點流是從一個特定的節點讀取資料,可以從一個特定的檔案,網路中的一個檔案,可以直接操作檔案,對檔案進行讀取或者向檔案中寫入資料。
對於處理流,是對一個已存在的流的連線和封裝,通過所封裝的流的功能呼叫實現資料讀寫。
所有的IO流都都位於java.io包下,並繼承於Object類,都實現這四個抽象類
位元組流 |
字元流 |
|
輸入流 |
InputStream |
Reader |
輸出流 |
OutputStream |
Writer |
繼承自InputStream/OutputStream的流都是用於向程式中輸入/輸出資料,且資料的單位都是位元組(byte=8bit)。
- InputStream 是所有的輸入位元組流的父類,它是一個抽象類,有很多實現類
- ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三種基本的介質流,它們分別從Byte 陣列、StringBuffer、和本地檔案中讀取資料。PipedInputStream 是從與其它執行緒共用的管道中讀取資料,很少用
- ObjectInputStream 和所有FilterInputStream 的子類都是裝飾流(這裡用到了裝飾器模式)。
- OutputStream 是所有的輸出位元組流的父類,它是一個抽象類。
- ByteArrayOutputStream、FileOutputStream 是兩種基本的介質流,它們分別向Byte 陣列、和本地檔案中寫入資料。PipedOutputStream 是向與其它執行緒共用的管道中寫入資料,
- ObjectOutputStream 和所有FilterOutputStream 的子類都是裝飾流。
繼承自Reader/Writer的流都是用於向程式中輸入/輸出資料,且資料的單位都是字元(2byte=16bit)
- Reader 是所有的輸入字元流的父類,它是一個抽象類。
- CharReader、StringReader 是兩種基本的介質流,它們分別將Char 陣列、String中讀取資料。PipedReader 是從與其它執行緒共用的管道中讀取資料。
- BufferedReader 很明顯就是一個裝飾器,它和其子類負責裝飾其它Reader 物件。
- FilterReader 是所有自定義具體裝飾流的父類,其子類PushbackReader 對Reader 物件進行裝飾,會增加一個行號。
- InputStreamReader 是一個連線位元組流和字元流的橋樑,它將位元組流轉變為字元流。FileReader 可以說是一個達到此功能、常用的工具類,在其原始碼中明顯使用了將FileInputStream 轉變為Reader 的方法。我們可以從這個類中得到一定的技巧。
- Writer 是所有的輸出字元流的父類,它是一個抽象類。
- CharArrayWriter、StringWriter 是兩種基本的介質流,它們分別向Char 陣列、String 中寫入資料。PipedWriter 是向與其它執行緒共用的管道中寫入資料,
- BufferedWriter 是一個裝飾器為Writer 提供緩衝功能。
- PrintWriter 和PrintStream 極其類似,功能和使用也非常相似。
- OutputStreamWriter 是OutputStream 到Writer 轉換的橋樑,它的子類FileWriter 其實就是一個實現此功能的具體類。功能和使用和OutputStream 極其類似。
參考:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html#!comments
相關推薦
Java IO流簡介
Java中的流是什麼? java中的流是一個抽象的概念,在java的程式中需要把檔案從一個裝置傳輸到另一個裝置上,這個裝置可以是記憶體,程式,檔案,網路。把在這些之間傳輸的叫做流。官方的解釋:流是一組
happy in java之io流簡介
ack 封裝 16px bsp strong 一個 硬盤 其他 file 閑來沒事,重溫馬士兵老師的java基礎。。。 流 水流的流 流氓的流,,流 英文叫做stream,溪流 流的分類: 流是用來讀寫數據的。 流就像水流一樣,File類封裝
Java IO流-NIO簡介
spa 一段 string light rabl 文件中 很多 io流 puts 2017-11-05 22:09:04 NIO NIO:new IO就是新IO的意思,JDK4開始出現新IO,新IO和傳統的IO有相同的目的,都是用於進行輸入輸出的,但是新IO使用了不同的
Java IO流字元流簡介及基本使用
Java IO流字元流簡介及常用字元流的基本使用 字元流分為輸入字元流(Writer)和輸出字元流(Reader),這兩種字元流及其子類字元流都有自己專門的功能。在編碼中我們常用的輸出字元流有FileWriter、PrintWriter等,而常用的輸入字元流有Strin
java Io 流類詳解
修改 文件目錄 != exe [] 深入 clas one fileinput 關於java 流類的復習;習慣性的復習按照圖結構一層層往下深入去了解去復習,最後通過代碼來實現感覺印象會更深刻一些; 關於 I/O流:IO可以理解為JAVA用來傳遞數據的管道
Java IO流學習總結
系統 指針 數組 rar amr redo 修改 接收 學習 Java IO流學習總結 Java流操作有關的類或接口: Java流類圖結構: 流的概念和作用 流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱為流,流
java io流 分析
decode string 對象 集成 piped fileread 一個 blog 文章 java io流 在java應用或者android應用中很常見,並且使用頻率很高的一個模塊。當時每次需要用到這個模塊的時候總是有提筆忘字的感覺,不知道該用哪個流或者該用誰包裝誰。
seall的Java IO流總結
如果 com read 對稱 可能 對象實例化 它的 通過 兩個 Java流類圖結構: 流的概念和作用 流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱為流,流的本質是數據傳輸,根據數據傳輸特性將流抽象為各種類,方便更直觀
java io流 數據流 DataInputStream、DataOutputStream、ByteArrayInputStream、ByteArrayOutputStream
clas mat 分享 col -s 例子 oid 類型 write 例子程序: package io; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream;
Java IO流
io 流 inputstream outputstream Java中的流,可以從不同的角度進行分類。按照數據流的方向不同可以分為:輸入流和輸出流。按照處理數據單位不同可以分為:字節流和字符流。按照實現功能不同可以分為:節點流和處理流。 輸出流: 輸入流:因此輸入和輸出都是從程序的角度來說的。
慕課網_文件傳輸基礎——Java IO流
一次 只讀 poi fileutil pat lar 一個 慕課網 inpu fadf 第1章 文件的編碼 1-1 文件的編碼 (15:07) 第2章 File 類的使用 2-1 File 類常用 API 介紹 (10:50) import java.io.File;
【Java IO流】File類的使用
parent static 技術 訪問 eat als 斜杠 rate 刪除 File類的使用 Java中的File類是在java.io.File中,Java.IO.File類表示文件或目錄。 File類只用於表示文件(目錄)的信息(名稱、大小等),不能用於文件內容
Java IO流學習總結(轉)
rar output 出現 arr system 不存在 技術分享 輸出 寫入 原文地址:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html Java流操作有關的類或接口: Java流類圖結構:
java-IO流(File對象-深度遍歷指定目錄下的文件夾和文件)
true file turn ren 文件夾 int tsa http absolut 需求:遍歷這個樹狀結構 File(String pathname) ‘\\‘為了轉義‘\‘ // 通過抽象路徑pathname 創建一個新的文件或者目錄 Fil
java IO流實現刪除文件夾以及文件夾中的內容
處理 我們 alt 以及 結果 需要 com ges 平時 這篇主要是對IO文件流對文件常用處理中的刪除文件夾,平時我們直接刪除文件夾既可以刪除裏面的全部內容。 但是java在實現刪除時,只能是文件才會被刪除。 所以這裏需要定義一個方法,來遞歸調用方法(遞歸調用,就是在方法
java-IO流
stream 對象流 png -i .com blog 分享 logs bean 一、相關IO類的關系(圖解) 二、相關IO類的詳解 1FileInputStream(文件讀取流) 1對象流:寫入文件之前的bean對象要先實現序列化java-IO流
Java IO流
分類 tput 所有 輸出流 對象 pre ref out borde IO流是用來處理設備之間的數據傳輸的,Java對數據的操作都是使用流的方式處理的,而且Java將處理流的操作封裝成IO流對象了。 一、IO流的分類 流按照操作的數據分為:字節流、字符流 流按照流的方向分
關於java io流操作文件探討
字節流 程序 文本 puts not buffered 編碼 字符編碼 edr 1.任務描述 2.讀取一個字符 3.讀取整個文件 4.復制文件 5.復制大文件 6.利用字符流解決亂碼問題 一.任務描述 大家都知道程序是程序的運行是離不
Java IO流篇
io流 -1 code 基類 串流 分享 log reader 程序 什麽是IO流 思考問題 如何讀寫文件? 解決--通過流讀寫文件 流是指一連串流動的字符,以先進先出傳輸信息的通道。 Java操控硬盤上的文件,通過IO流來實現
Java IO流-字節流
數據類型分類 抽象基類 數據 輸入輸出 高級 bytes 一次 div blog 2017-11-05 17:48:17 Java中的IO流按數據類型分類分為兩種,一是字節流,二是字符流。字符流的出現是為了簡化文本數據的讀入和寫出操作。 如果操作的文件是文本文件,那麽使用字