1. 程式人生 > >18 Java學習之IO概述

18 Java學習之IO概述

Java的IO包主要關注的是從原始資料來源的讀取以及輸出原始資料到目標媒介。以下是最典型的資料來源和目標媒介:

  • 檔案
  • 管道
  • 網路連線
  • 記憶體快取
  • System.in, System.out, System.error(注:Java標準輸入、輸出、錯誤輸出)

下面這張圖描繪了一個程式從資料來源讀取資料,然後將資料輸出到其他媒介的原理:

無標題1

在Java IO中,流是一個核心的概念。流從概念上來說是一個連續的資料流。你既可以從流中讀取資料,也可以往流中寫資料。流與資料來源或者資料流向的媒介相關聯。在Java IO中流既可以是位元組流(以位元組為單位進行讀寫),也可以是字元流(以字元為單位進行讀寫)。

類InputStream, OutputStream, Reader 和Writer

一個程式需要InputStream或者Reader從資料來源讀取資料,需要OutputStream或者Writer將資料寫入到目標媒介中。以下的圖說明了這一點:

無標題2

InputStream和Reader與資料來源相關聯,OutputStream和writer與目標媒介相關聯。

Java IO的用途和特徵

Java IO中包含了許多InputStream、OutputStream、Reader、Writer的子類。這樣設計的原因是讓每一個類都負責不同的功能。這也就是為什麼IO包中有這麼多不同的類的緣故。各類用途彙總如下:

  • 檔案訪問
  • 網路訪問
  • 記憶體快取訪問
  • 執行緒內部通訊(管道)
  • 緩衝
  • 過濾
  • 解析
  • 讀寫文字 (Readers / Writers)
  • 讀寫基本型別資料 (long, int etc.)
  • 讀寫物件

Java IO類概述表

已經討論了資料來源、目標媒介、輸入、輸出和各類不同用途的Java IO類,接下來是一張通過輸入、輸出、基於位元組或者字元、以及其他比如緩衝、解析之類的特定用途劃分的大部分Java IO類的表格。

QQ截圖20141020174145

轉載自併發程式設計網 – ifeve.com本文連結地址: Java IO 概述