Java流與文件操作

 

一、數據流的基本概念

數據源(Data Sourcc):是指那些能夠提供數據的地方,包括鍵盤、磁盤文件、網絡接口等。

數據宿(Data Sink):指能夠接收數據的地方,可以是磁盤文件、網絡接口以及顯示器、打印機等外部設備。(數據宿也可認爲是數據傳輸的目的地)

爲提高數據的傳輸效率,通常使用緩衝流(Buffered Stream)緩衝流提高了內存與外部設備的數據傳輸效率。

1、數據流可以分爲輸入/輸出流,即輸入流只能從中讀取數據,而不能向其寫出數據;輸出流則只能向其寫出數據,而不能從中讀取數據。

2、根據數據流所關聯的是數據源還是其他數據流,可分爲節點流(Node Stream)和處理流(Processing Stream)。節點流可以從/向一個特定的地方讀/寫數據;【例,FileReader fr=new FileReader(“demo.txt”);】處理流是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現增強的數據讀/寫功能,處理流並不直接連接到數據源。【BufferedReader br=new BufferedReader(new FileReader(“demo.txt”));】

3、按傳輸數據的“顆粒大小”劃分,可分爲字符流(Character Stream)和字節流(Byte Stream)。字節流以字節爲單位進行數據傳輸,每次傳送一個或多個字節;字符流以字符爲單位進行數據傳輸,每次傳送一個或多個字符;(字符流使用了字節流讀到一個或多個字節(中文對應的字節數是兩個,在UTF-8碼錶中是3個字節)時,先去查指定的編碼表,將查到的字符返回);字節流可以處理所有類型的數據,如圖片、mp3、avi字符流只能處理字符數據。

二、字符流

  1、 Reader類和Writer類用來專門處理字符流。

(1)Reader類中定義的方法

public int read():讀取一個字符,返回的是讀到的那個字符。如果讀到流的末尾,返回-1。

public int read(char[] cbuf):將讀到的字符存入指定的數組中,返回的是實際讀取的字符數。如果讀到流的末尾,返回-1。

public abstract int read(char[] cbuf,int off,int len):將讀到的字符存入數組的指定位置(off),每次最多讀len個字符,返回實際讀取的字符數。如果讀到流的末尾,返回-1。

close():讀取字符其實用的是window系統的功能,使用完畢後,進行資源的釋放。

(2)Writer

Java.io.Writer與java.io.Reader類對應,是所有字符輸出流類型的共同父類,也是一個抽象類,其中聲明瞭用於寫字符流的有關方法。

Writer類中定義的主要方法

public void write(int c):將一個字符寫入到流中。

public void write(char[]):將數組中的字符依次寫出。

public abstract void write(char[] bcbuf,int off,int len):將數組中下標off開始的len個字符寫出。

public void write(String):將一個字符串寫入到流中。

public abstract void flush():刷新流,將流中的數據刷新到目的地中,流還存在。

public abstreact void close():關閉資源,關閉前會先調用flush,刷新流中的數據去目的地,然後流關閉。

2、FileWriter

該類沒有特有的方法。只有自己的構造函數。

該類特點:用於處理文本文件;該類中有默認的編碼表,該類中有臨時緩衝。

構造函數:public FileWriter(String filename);//調用系統資源,在指定位置,創建一個文件。(注意:如果該文件已存在,將會被覆蓋。)public FileWriter(String filename,boolean append);//當傳入的boolean類型的參數值爲true時,會在指定文件末尾處進行數據的續寫。

3、FileReader的使用

用於讀取文本文件的流對象。

構造函數:在讀取流對象初始化的時候,必須要指定一個被讀取的文件。
public FileReader(String filename);//如果該文件不存在會發生FileNotFoundException

 

構造方法:

public FileReader(File file) throws FileNotFoundException

public FileReader(FileDescriptor fd)

public FileReader(StringFileName)throws FileNotFoundException

public FileWriter(File file)throws IOExeception

public FileWriter(File file,boolean append)throws OException

public FileWriter(FileDescriptor fd)

public FileWriter(String fileName)throws IOException

public FileWriter(String filename,boolean append)throws IOException

發佈了42 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章