1. 程式人生 > >Java IO流簡介

Java IO流簡介

Java中的流是什麼?

java中的流是一個抽象的概念,在java的程式中需要把檔案從一個裝置傳輸到另一個裝置上,這個裝置可以是記憶體,程式,檔案,網路。把在這些之間傳輸的叫做流。官方的解釋:流是一組有順序的,有起點和終點的位元組集合,是對資料傳輸的總稱或抽象。即資料在兩裝置間的傳輸稱為流,流的本質是資料傳輸,根據資料傳輸特性將流抽象為各種類,方便更直觀的進行資料操作。好比兩個池塘之間的水流,一個池塘的水要到另一個池塘,就要有水流。

java IO流的分類:

  • 根據傳輸處理的資料單位不同分為:位元組流,字元流

傳輸的資料單位一個是位元組(8個二進位制位8bit)(byte),字元流傳輸的單位為字元,一個字元可能由多個位元組組成,一次可以傳輸多個位元組。在傳輸檔案上位元組可以傳輸,影象,視訊,音訊檔案,這些檔案都是以位元組為單位。對於字元流只能處理由字元為單位的檔案,如純文字組成的檔案,當字元組成的檔案由位元組流傳輸的時候,由於讀取的時候是按照位元組讀取,但是例如一個漢字可能由兩個字元組成,可能由三個字元組成,在拆分成位元組後再組合就能出現亂碼。具體檔案選擇具體處理的流。

  • 根據傳輸資料的方向不同可分為:輸入流,輸出流

在用輸入流和輸出流的時候,輸入流只能進行讀操作,輸出流只能進行寫操作

  • 根據功能不同可以分為:處理流,節點流

節點流是從一個特定的節點讀取資料,可以從一個特定的檔案,網路中的一個檔案,可以直接操作檔案,對檔案進行讀取或者向檔案中寫入資料。

對於處理流,是對一個已存在的流的連線和封裝,通過所封裝的流的功能呼叫實現資料讀寫。

所有的IO流都都位於java.io包下,並繼承於Object類,都實現這四個抽象類

位元組流
字元流
輸入流
InputStream
Reader
輸出流
OutputStream
Writer

繼承自InputStream/OutputStream的流都是用於向程式中輸入/輸出資料,且資料的單位都是位元組(byte=8bit)。

  1. InputStream 是所有的輸入位元組流的父類,它是一個抽象類,有很多實現類
  2. ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三種基本的介質流,它們分別從Byte 陣列、StringBuffer、和本地檔案中讀取資料。PipedInputStream 是從與其它執行緒共用的管道中讀取資料,很少用
  3. ObjectInputStream 和所有FilterInputStream 的子類都是裝飾流(這裡用到了裝飾器模式)。

  1. OutputStream 是所有的輸出位元組流的父類,它是一個抽象類。
  2. ByteArrayOutputStream、FileOutputStream 是兩種基本的介質流,它們分別向Byte 陣列、和本地檔案中寫入資料。PipedOutputStream 是向與其它執行緒共用的管道中寫入資料,
  3. ObjectOutputStream 和所有FilterOutputStream 的子類都是裝飾流。

繼承自Reader/Writer的流都是用於向程式中輸入/輸出資料,且資料的單位都是字元(2byte=16bit)

  1. Reader 是所有的輸入字元流的父類,它是一個抽象類。
  2. CharReader、StringReader 是兩種基本的介質流,它們分別將Char 陣列、String中讀取資料。PipedReader 是從與其它執行緒共用的管道中讀取資料。
  3. BufferedReader 很明顯就是一個裝飾器,它和其子類負責裝飾其它Reader 物件。
  4. FilterReader 是所有自定義具體裝飾流的父類,其子類PushbackReader 對Reader 物件進行裝飾,會增加一個行號。
  5. InputStreamReader 是一個連線位元組流和字元流的橋樑,它將位元組流轉變為字元流。FileReader 可以說是一個達到此功能、常用的工具類,在其原始碼中明顯使用了將FileInputStream 轉變為Reader 的方法。我們可以從這個類中得到一定的技巧。


  1. Writer 是所有的輸出字元流的父類,它是一個抽象類。
  2. CharArrayWriter、StringWriter 是兩種基本的介質流,它們分別向Char 陣列、String 中寫入資料。PipedWriter 是向與其它執行緒共用的管道中寫入資料,
  3. BufferedWriter 是一個裝飾器為Writer 提供緩衝功能。
  4. PrintWriter 和PrintStream 極其類似,功能和使用也非常相似。
  5. OutputStreamWriter 是OutputStream 到Writer 轉換的橋樑,它的子類FileWriter 其實就是一個實現此功能的具體類。功能和使用和OutputStream 極其類似。


參考:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html#!comments

相關推薦

Java IO簡介

Java中的流是什麼? java中的流是一個抽象的概念,在java的程式中需要把檔案從一個裝置傳輸到另一個裝置上,這個裝置可以是記憶體,程式,檔案,網路。把在這些之間傳輸的叫做流。官方的解釋:流是一組

happy in javaio簡介

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流按數據類型分類分為兩種,一是字節流,二是字符流。字符流的出現是為了簡化文本數據的讀入和寫出操作。 如果操作的文件是文本文件,那麽使用字