IO流之字元流

2022-07-26 06:48:08 字數 1432 閱讀 9384

字元流產生的原因:

1.每次只能夠讀取乙個位元組或者乙個位元組陣列,每次在需要轉換成字元或者字串的時候不是很方便

2.不同的作業系統針對換行符的處理不方便

3.有的時候會出現中文亂碼(中文佔兩個位元組,如果針對中文中某個位元組做了轉換或者顯示,就會出現亂碼)

4.如果需要讀取某一行資料,非常不方便

編碼* string/char --> byte

* 解碼

* byte --> string/char

我們可以對字元陣列或者字串進行編碼,那麼其實io流底層是字元流或者位元組流,所以我們一樣可以對流的資料進行編碼和解碼

轉換流需求:使用字元流向文字裡寫入「helloworld」。

writer(抽象類,不能直接使用,選擇子類)

outputstreamwriter**換流,是位元組流通向字元流的橋梁,可使用指定的 charset 將要寫入流中的字元編碼成位元組。它使用的字符集可以由名稱指定或顯式給定,否則將接受平台預設字符集編碼。)

構造方法

outputstreamwriter(outputstream out) 建立使用預設字元編碼的字元輸出轉換流

outputstreamwriter(outputstream out, charset cs) 建立使用cs字符集的字元輸出轉換流

outputstreamwriter(outputstream out, charsetencoder enc) 建立使用enc字符集編碼器的

outputstreamwriter(outputstream out, string charsetname) 建立使用指定字符集的

filewriter:用來寫入字元檔案的便捷類。此類的構造方法假定預設字元編碼和預設位元組緩衝區大小都是可接受的。要自己指定這些值,可以先在 fileoutputstream 上構造乙個outputstreamwriter。

filereader:用來讀取字元檔案的便捷類。此類的構造方法假定預設字元編碼和預設位元組緩衝區大小都是適當的。要自己指定這些值,可以先在 fileinputstream 上構造乙個 inputstreamreader。

構造方法類似fileinputstream和fileoutputstream

成員方法完全繼承自父類outputstreamwriter和inputstreamreader

高效字元流

類似於位元組流的bufferedoutputstream和bufferedinputstream,字元流同樣存在字元緩衝流

同理,字元緩衝流也是為了提高字元流的效率。

bufferedwriter和bufferedreader繼承自writer和reader,所以具備原有的讀取方法,但是還存在自己特有的方法。

特有的方法:

bufferedwriter:void newline()

bufferedreader:string readline()

IO流之字元流

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

IO之字元流

在程式中乙個字元等於兩個位元組。1 字元輸出流 writer 抽象類,需要通過filewriter子類進行例項化 public filewriter file file throws ioexcrption writer類的常用方法 public abstract void close 0 thro...

IO之字元流

字元流以16位的字元為單位進行讀與寫操作。其體系都是以reader和writer為基類派生出來。這兩個類是抽象類,作為字元流的模版。1.writer和filewriter 1.1 writer writer是寫入字元流的抽象類。其用於寫的方法有如下幾個 void write char c 寫入單個字...