看完了位元組流
接下來我們來了解一下字元流
字元流字元流是可以直接讀寫字元的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.如果需要讀取某一行資料,非常不方便 編碼...