java IO流檔案的讀寫具體例項

2021-09-07 03:52:06 字數 1956 閱讀 1010

io流的分類

1、根據流的資料物件來分:

高階流:所有的記憶體中的流都是高階流,比如:inputstreamreader 

低端流:所有的外界裝置中的流都是低端流,比如inputstream,outputstream

如何區分:所有的流物件的字尾中包含reader或者writer的都是高階流,反之,則基本上為低端流,不過也有例外,比如printstream就是高階流

2、根據資料的流向來分:

輸出流:是用來寫資料的,是由程式(記憶體)--->外界裝置

輸入流:是用來讀資料的,是由外界裝置--->程式(記憶體)

如何區分:一般來說輸入流帶有input,輸出流帶有output 

3、根據流資料的格式來分:

位元組流:處理聲音或者等二進位制的資料的流,比如inputstream

字元流:處理文字資料(如txt檔案)的流,比如inputstreamreader 

如何區分:可用高低端流來區分,所有的低端流都是位元組流,所有的高階流都是字元流

4、根據流資料的包裝過程來分:

原始流:在例項化流的物件的過程中,不需要傳入另外乙個流作為自己構造方法的引數的流,稱之為原始流。

包裝流:在例項化流的物件的過程中,需要傳入另外乙個流作為自己構造方法發引數的流,稱之為包裝流。

如何區分:所以的低端流都是原始流,所以的高階流都是包裝流

io流物件的繼承關係(如下圖):

下面來看一些具體的**例子:

按位元組來讀取檔案

public

class

readfromfile

in.close();

} catch

(ioexception e)

try }

catch

(exception e1)

finally

catch

(ioexception e1) }}

}

按字元來讀取檔案

/**

* 以字元為單位讀取檔案,常用於讀文字,數字等型別的檔案

*/public

static

void

readfilebychars(string filename)

}reader.close();

} catch

(exception e)

try

else

else}}

}} catch

(exception e1)

finally

catch

(ioexception e1) }}

}

按行來讀取檔案

/**

* 以行為單位讀取檔案,常用於讀面向行的格式化檔案

*/public

static

void

readfilebylines(string filename)

reader.close();

} catch

(ioexception e)

finally

catch

(ioexception e1) }}

}

將乙個檔案的內容寫入另乙個檔案(按行來寫)

public

class

filetest

catch

(ioexception e1)

tryread.close();

writer.close();

system.out.println("檔案寫入完成...");

} catch

(ioexception e)

}}

java IO流 位元組流讀寫中文

位元組流讀取中文的問題 位元組流在讀中文的時候有可能會讀到半個中文,造成亂碼 fileinputstream fis new fileinputstream yyy.txt byte arr new byte 4 int len while len fis.read arr 1 位元組流寫出中文的問...

java IO 檔案流詳解

本篇博文學習了一下內容 fileinputstream 位元組輸入流 構造方法 讀取檔案 fileoutputstream 位元組輸出流 構造方法 寫入檔案 filerearder 字元輸入流 構造方法 讀取檔案 filewriter 字元輸出流 構造方法 寫出檔案 位元組檔案和字元檔案 總結 構造...

java IO位元組流讀寫檔案

如果是按照資料的流向劃分 輸入流 輸出流以當前程式做參照物,觀察資料是流入還是流出,如果流出,則使用輸出流,如果資料是流入,則使用輸入流。如果按照處理的單位劃分 位元組流 位元組流讀取得都是檔案中二進位制資料,讀取到二進位制資料不會經過任何的處理。字元流 字元流讀取的資料是以字元為單位的 字元流也是...