Java中的IO流之字元流

2021-08-22 19:15:14 字數 2131 閱讀 5300

看完了位元組流

接下來我們來了解一下字元流

字元流字元流是可以直接讀寫字元的io流,用字元流來讀取字元時,先讀取到位元組資料,,然後轉為字元。寫出字元時,需要把字元轉為位元組再寫出。

還是上**吧~    

filereader

filereader 類中的 read() 方法可以按照字元大小讀取

這樣就把文字中的文字讀取出來了

沒有亂碼呦~

filewriter

filewriter 類的 write() 方法可以自動把字元轉為位元組寫出

和位元組流一樣,檔名在後面加上 ture,表示向檔案追加內容~

是不是很方便~

字元流的拷貝

讀和寫的操作都已熟悉下面我們來把兩個操作結合起來~

效果**

什麼情況下應該使用字元流呢?

2)程式需要讀取一段文字,或者需要寫出一段文字的時候可以使用字元流。字元流讀取的時候是按照字元的大小讀取的,不會出現半個中文,寫出的時候可以直接將字串寫出,不用轉換為位元組陣列。

字元流是否可以拷貝非純文字的檔案

不可以拷貝非純文字的檔案!

因為在讀的時候會將位元組轉換為字元,在轉換過程中,可能找不到對應的字元,就會用 『?』代替,寫出的時候會將字元轉換成位元組寫出去,如果是『?』直接寫出,這樣寫出之後的檔案就亂了,看不了了~~~

自定義字元陣列的拷貝

和位元組流一樣,字元流也可以通過自定義陣列的方式進行拷貝。

帶緩衝的字元流

位元組流也是有緩衝的呦~

bufferedreader 的 read() 方法:

讀取字元時會一次讀取若干字元到緩衝區,然後逐個返回給程式,降低讀取檔案的次數,提高效率。

bufferedwriter 的 write() 方法:

寫出字元時會先寫到緩衝區,緩衝區寫滿時才會寫到檔案,降低寫檔案的次數,提高效率。

readline() 和 newline() 方法

bufferedreader 的 readline() 方法:

可以讀取一行字元(不包含換行符號)

bufferedwrite r的 newline() 方法:

可以輸出乙個跨平台的換行符號"\r\n"

效果**:

linenumberreader類

linenumberreader 是 bufferedreader 的子類,具有相同的功能,並且可以統計行號。

呼叫 getlinenumber() 方法可以獲取當前行號

呼叫 setlinenumber() 方法可以設定當前行號

果然用字元流來操作中文什麼的

最方便了全程高畫質無亂碼~

java的IO流 字元流

reader 是所有的輸入字元流的父類,它是乙個抽象類。reader 中各個類的用途和使用方法基本和inputstream 中的類使用一致。後面會有reader 與inputstream 的對應關係。1 看看幾個常用的實現類 該類從資料來源讀取位元組並將其解碼為使用指定的字符集的字元。inputst...

IO流之字元流

字元流是為了方便我們讀寫文字檔案,在換句話說,字元流只能讀寫文字檔案,其他型別的檔案讀寫不了。outputstreamwriter 是字元流通向位元組流的橋梁 可使用指定的 charset 將要寫入流中的字元編碼成位元組。它使用的字符集可以由名稱指定或顯式給定,否則將接受平台預設的字符集。使用編碼表...

IO流之字元流

字元流產生的原因 1.每次只能夠讀取乙個位元組或者乙個位元組陣列,每次在需要轉換成字元或者字串的時候不是很方便 2.不同的作業系統針對換行符的處理不方便 3.有的時候會出現中文亂碼 中文佔兩個位元組,如果針對中文中某個位元組做了轉換或者顯示,就會出現亂碼 4.如果需要讀取某一行資料,非常不方便 編碼...