1. 程式人生 > >java中的i/o體系結構及流分類

java中的i/o體系結構及流分類

Java中IO流的體系結構如圖:
IO流的體系結構如圖

在整個Java.io包中最重要的就是5個類和一個介面。5個類指的是File、OutputStream、InputStream、Writer、Reader;一個介面指的是Serializable.掌握了這些IO的核心操作那麼對於Java中的IO體系也就有了一個初步的認識了
Java I/O主要包括如下幾個層次,包含三個部分:
1.流式部分――IO的主體部分;
2.非流式部分――主要包含一些輔助流式部分的類,如:File類、RandomAccessFile類和FileDescriptor等類;
3.其他類–檔案讀取部分的與安全相關的類,如:SerializablePermission類,以及與本地作業系統相關的檔案系統的類,如:FileSystem類和Win32FileSystem類和WinNTFileSystem類。
主要的類如下:
1. File(檔案特徵與管理):用於檔案或者目錄的描述資訊,例如生成新目錄,修改檔名,刪除檔案,判斷檔案所在路徑等。
2. InputStream(二進位制格式操作):抽象類,基於位元組的輸入操作,是所有輸入流的父類。定義了所有輸入流都具有的共同特徵。
3. OutputStream(二進位制格式操作):抽象類。基於位元組的輸出操作。是所有輸出流的父類。定義了所有輸出流都具有的共同特徵。
Java中字元是採用Unicode標準,一個字元是16位,即一個字元使用兩個位元組來表示。為此,JAVA中引入了處理字元的流。
4. Reader(檔案格式操作):抽象類,基於字元的輸入操作。
5. Writer(檔案格式操作):抽象類,基於字元的輸出操作。
6. RandomAccessFile(隨機檔案操作):它的功能豐富,可以從檔案的任意位置進行存取(輸入輸出)操作。

好的接下來我們看看java中的i/o流的分類:
按流向分:
輸入流: 程式可以從中讀取資料的流。
輸出流: 程式能向其中寫入資料的流。
按資料傳輸單位分:
位元組流: 以位元組為單位傳輸資料的流
字元流: 以字元為單位傳輸資料的流
按功能分:
節點流: 用於直接操作目標裝置的流
過濾流: 是對一個已存在的流的連結和封裝,通過對資料進行處理為程式提供功能強大、靈活的讀寫功能。

相關推薦

javai/o體系結構分類

Java中IO流的體系結構如圖: 在整個Java.io包中最重要的就是5個類和一個介面。5個類指的是File、OutputStream、InputStream、Writer、Reader;一個介面指的是Serializable.掌握了這些IO的核心操作那麼

javaI/O的隨機

隨機流要實現RandomAccessFile這個方法 RandomAccessFile raf = new RandomAccessFile(“D:/IOTest/helloworld.txt”, “

JavaI/O(輸入/輸出)的操作

Java的I/O技術可以將資料儲存到文字檔案、二進位制檔案甚至是ZIP壓縮檔案中,以達到永久性儲存資料的要求。 1、流概述 流是一組有序的資料序列,根據操作的型別,可分為輸入流和輸出流兩種。I/O(Input/Output)流提供了一條通道程式,可以使用這條通道把源中的位元組序列送到目的

linux I-O體系結構和裝置驅動程式

裝置驅動程式模型 基於linux 3.13 sysfs檔案系統 允許使用者態應用程式訪問核心內部資料結構的一種檔案系統。被安裝於/sys目錄下,相應的高層目錄結構如下: block 塊裝置,獨立於所連線的匯流排 devices

I/O體系結構和裝置驅動程式(一)

1、I/O體系結構 為確保計算機能夠正常工作,必須提供資料通路,讓資訊在連線到計算機的CPU、RAM、和I/O裝置之間流動,這些資料通路總稱為匯流排,擔當計算機內部主通訊通道的作用。 所有計算機都擁有一條系統匯流排,它連線大部分內部硬體裝置,一種典型的系統匯流排是PCI(

JavaI/O相關

基本資料流 DataInputStream / DataOutPutStream 操作基本資料型別的流,可以讀寫各種基本資料 記憶體操作流 對記憶體中的變數進行 I / O 操作 有C語言sprintf函式的影子 又像集合中的toArray填充一個數組 可以把流中

JavaI/O概述

流概述 從流的功能分類 節點流(Node Stream) 直接與節點(如檔案)相連 可以從 / 向一個特定的地方(節點)讀 / 寫資料 如檔案流FileInputStream,記憶體流 ByteArrayInputStream

Java筆記-I/O之物件序列化

物件序列化流 物件序列化流基本介紹 使用工具:ObjectOutputStream,ObjectInputStream 介紹:將物件以檔案的形式儲存在硬碟中,使之能更方便的傳輸。 條件:必須實現Serializable介面(實現了這個介面,但

Java筆記-I/O之系統標準輸入輸出

Java的標準輸入和輸出介紹 Java遵循標準I/O的模型,提供了Syetem.in,System.out,以及System.err。 System.out 是一個已經預先處理過的,被包裝成PrintStream的物件。 System.err 和 Syst

JavaI/O的類和方法講解

Java 的FILE類,以及常用方法 檔案和資料夾都是用File代表 建立一個檔案物件 使用絕對路徑或者相對路徑建立File物件  // 絕對路徑 File f1 = new File("d:/LOLFolder"); System

Java基礎---I/O--序列+PrintStream+轉換+Serializable+Properties

一、序列流     SequenceInputStream (序列流) : 可以把多個輸入流串聯起來讀取,先從第一個開始i讀取,然後再下一個.... 方式一:只合並兩個流 public SequenceInputStream(InputStream s1,InputSt

Java I/O總結(二)——分類

    輸入流 讀(Reader|InputStream) 方向     輸出流 寫(Writer|OutputStream)     位元組流(Stream) 處理單位      字元流(Reader|Writer)         緩衝流(Buffered) 是否帶有

javaI/O輸入輸出解析

一、流的概述 流是一組有序的資料序列,根據操作的型別,可以分為輸入流和輸出流。I/O流提供了一條通道程式,可以使用這條通道把源中的位元組序列送到目的地。 二、輸入模式 輸出模式圖 三、java流的分類

PythonI/O程式設計的select,poll,epoll區別程式碼例項

select、poll、epoll三者的區別 select select最早於1983年出現在4.2BSD中,它通過一個select()系統呼叫來監視多個檔案描述符的陣列,當select()返回後,該陣列中就緒的檔案描述符便會被核心修改標誌位,使得程序可以獲得這些檔案描述符從而進行後續的讀寫操作。select

Java進行I/O操作時正確關閉I/O的程式碼示例

一、錯誤示例1 public void CopyFile () { FileReader fr = null; FileWriter fw = null; try {

Java核心---I/O

流概述: 流是一組有序的資料序列,根據操作的型別,可分為輸入流和輸出流兩種。I/O(Input/Output,輸入/輸出)流提供了一條通道程式,可以使用這條通道把源中的位元組序列送到目的地。 輸入和

Java基礎--I/O知識總結

Java基礎–I/O流知識總結 引言 I/O(輸入/輸出)應該算是所有程式都必需的一部分,使用輸入機制,允許程式讀取外部的資料資源、接收使用者輸入;使用輸出機制,允許程式記錄允許狀態,並將資料輸出到外部裝置。Java的IO是通過java.io包下的類和介面來實

java基礎——I/O

位元組流:讀取和寫入資料的時候,以位元組為最小單元進行讀取和寫入操作 字元流:讀取和寫入資料的時候,以字元為最小單元進行讀取和寫入操作,因為每個字元根據編碼不同,所佔用的位元組個數不同,每次讀取和寫入字元時候,是不定長的位元組個數寫入讀取。 輸入流:把資料從其他儲存機制讀入

Java I/O體系從原理到應用,這一篇全說清楚了

本文介紹作業系統I/O工作原理,Java I/O設計,基本使用,開源專案中實現高效能I/O常見方法和實現,徹底搞懂高效能I/O之道 基礎概念 在介紹I/O原理之前,先重溫幾個基礎概念: (1) 作業系統與核心 作業系統:管理計算機硬體與軟體資源的系統軟體 核心:作業系統的核心軟體,負責管理系統的程

小白學JavaI/O

目錄 小白學Java:I/O流 基本分類 發展史 檔案字元流 輸出的基本結構 流中的異常處理 異常處理新方式 讀取的基本結構 運