IO流之字元流

2021-09-24 14:52:08 字數 1773 閱讀 7200

字元流是為了方便我們讀寫文字檔案,在換句話說,字元流只能讀寫文字檔案,其他型別的檔案讀寫不了。

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

使用編碼表對位元組流中的資料進行解碼

public inputstreamreader(inputstream in):

傳引數需要傳inputstream的子類物件,即inputstreamwriter out = new inputstreamwriter(new fileinputstream(「a.txt」));

public inputstreamreader(inputstream in,string charsetname):

傳引數需要傳inputstream的子類物件,即inputstreamwriter out = new inputstreamwriter(new fileinputstream(「a.txt」),」utf-8」);

inputstreamreader中的方法:

public int read() :

一次讀取乙個字元

public int read(char cbuf)

一次讀取乙個字元陣列

in.write(new char);

bufferedreader(高效的字元流):

從字元輸入流中讀取文字,緩衝各個字元,從而實現字元、陣列和行的高效讀取。

字元輸出流,是位元組輸出流+編碼表組成

public outputstreamwriter(outputstream out):

傳引數需要傳outputstream的子類物件,即outputstreamwriter out = new outputstreamwriter(new fileoutputstream(「a.txt」));

public outputstreamwriter(outputstream out,string charsetname):

傳引數需要傳outputstream的子類物件+編碼表型別,即outputstreamwriter out = new outputstreamwriter(new fileoutputstream(「a.txt」) ,「utf-8」)

public void write(int c) :

一次寫入乙個字元

out.write(『a』);

public void write(char cbuf):

一次寫入乙個字元陣列

out.write(new char);

public void write(char cbuf,int off,int len):

一次寫入字元陣列的一部分

out.write(new char,0,1);

public void write(string str):

一次寫入乙個字串

out.write(「我愛你」);

public void write(string str,int off,int len):

一次寫入乙個字串的一部分

out.write(「我愛你」,0,1);

public void flush():

字元流必須使用 out.flush來重新整理

高效寫入,底層**實現了緩衝區陣列

public void newline():

各個平台使用的換行符號不同有的是\r\n 有的是\r 有的是\n,因此使用bufferewriter中的newline來進行相容各個平台的換行

IO流之字元流

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

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 寫入單個字...