黑馬程式設計師 IO流學習筆記

2021-07-08 20:27:43 字數 4020 閱讀 6109

流按運算元據分:位元組流,字元流

按流向分為:輸入流輸出流

英文編碼表:asicci碼

漢子編碼表:gb2312,擴容後gbk

國際標準碼表:unicode,優化後變為utf-8;

字元流讀取的時候用什麼碼表可以有我們自己指定,這樣處理文字就變得很方便

所以處理文字用字元流方便,處理用位元組流方便,通用字節流

四個流的基類:inputstream,outputstream,reader,writer

所有的子類都以這四個類作為字尾名

一般我們用filewriter檔案輸出流

建立乙個檔案物件和乙個filewrter物件,該物件一初始化就要明確被操作的檔案。

而且該檔案被建立到指定的目錄下,如果有同名檔案,將會被覆蓋,這步就是為了明確資料要存放的目的地

file file=newfile("demo.txt");

filewriterfw=newfilewriter(file);

fw就是乙個流,把類容寫到fw這個流中

fw.write("abcde");

並且把流的資料寫到檔案中

fw.flush();或者用fw.close();

這些方式都是在使用windows的資源

異常的標準處理如下

filewriter fw=null;

trycatch(ioexception e)finally

}catch(ioexception e)

}在引數中傳遞true,那麼表示檔案可以續寫,把新內容寫到檔案中去

fw =newfilewriter("file.txt",true);

fw.write("

哈哈");

在寫入檔案中換行的話,由\r\n表示換行

filereaderfr=new filereader("file.txt");

方式一、一次讀乙個字元

len=fr.read();

方式二、一次讀取乙個字元陣列的字元

charc=newchar[4];

intlen=0;

while((len=fr.read(c))!=-1)

建立輸入流和輸出流

filereader fr=newfilereader("file.txt");

filewriter fw=newfilewriter("copy.txt");

charc=newchar[1024];

intlen=0;

讀取檔案

while((len=fr.read(c))!=-1)

關閉流fr.close();

fw.close();

1、檔案寫入:

filewriter fw=newfilewriter("copy.txt",true);

bufferedwriter bw=newbufferedwriter(fw);

bw.write("

你好jiayou a");

bw.close();關閉緩衝區就是關閉流,所以不用fw.close();

bw.newline();換行,可以跨平台,在windows和linux都是換行

2、檔案讀取

filereader fr=newfilereader("file.txt");

bufferedreader buf=newbufferedreader(fr);

string s=null;

檔案的讀取,readline一次讀取一行,方便對文字資料的獲取,如果返回null表示檔案讀完

while((s=buf.readline())!=null)

system.out對應的標準輸出裝置,system.in對應的標準輸入裝置

從鍵盤讀取輸入流

inputstreamis=system.in;//

定義乙個緩衝區

stringbuilder sb=newstringbuilder();

while(true)else

}else

}inputstreamreader操作位元組流的字元流物件,是位元組流通向字元流的橋梁,可以把位元組流轉換為字元流

outputstreamwriter為把字元轉換為位元組的類

從鍵盤讀取資料,

inputstreamis=system.in

;把位元組流轉換為字元流

inputstreamreader isr=newinputstreamreader(is);

把字元流裝進緩衝區

bufferedreader bufr=newbufferedreader(isr);

建立乙個位元組輸出流

outputstream os=system.out

;把字元流轉換為位元組流輸出

outputstreamwriter osw=newoutputstreamwriter(os);

建立乙個字元流緩衝區

bufferedwriter bufw=newbufferedwriter(osw);

string s=null;

while((s=bufr.readline())!=null)

bufw.close();

bufr.close();

鍵盤輸入合為一句

bufferedreader bufr=

new bufferedreader(newinputstreamreader(system.in))

bufferedwriterbufw=

new bufferedwriter

(newoutputstreamwriter(newfileoutputstream("file.txt")))

把鍵盤的輸入寫入檔案:

outputstreamos=newfileoutputstream("file.txt");

1、明確源和目的

源:輸入流inputstream,reader

目的:輸出流outputstream,writer

2、操作的是否純文字

是:字元流

不是:位元組流

3、當體系明確後,在明確要使用哪個具體的物件

通過裝置來進行區分,

源裝置:記憶體,硬碟,鍵盤

目的裝置:記憶體,硬碟,控制台

轉換流可以指定編碼表

bufferedwriterbufw=

new bufferedwriter

(newoutputstreamwriter

(newfileoutputstream("file.txt"),"utf-8"));在寫的時候可以以utf-8的編碼來存,讀取也一樣,對應的

黑馬程式設計師 IO流

asp.net unity開發 net培訓 期待與您交流!io流可以按流向分為輸入流,輸出流。按讀取資料的型別可分為位元組流和字元流。字元流 輸出字元流 writer 字元寫入流的抽象 filewriter 字元寫入流 bufferedwriter 字元寫入流緩衝區 outputstreamwrit...

黑馬程式設計師學習筆記 IO流 正則 委託

06.07 io流 物件序列化 序列化就是將物件轉換為二進位製流的過程。作用 直接儲存物件 在網路中可以直接傳送物件資訊 在使用序列化的時候盡量不要自樣。欄位名可能不動屬性。因為自動屬性。每次編譯的時候生成的所以在反序化的時候可能會造成問題 類中所有的字段屬性的型別也必須標記為可序列化 物件反序列化...

黑馬程式設計師 16 IO流

asp.net android ios開發 net培訓 期待與您交流!io流中的運算元據分為位元組流和字元流 早期都是以位元組流的形式操作的,位元組流處理單元是乙個位元組,操作 byte 或byte 可以操作任何形式的資料 字元流 由於對於文字資料,有不同的碼表編碼格式,字元流採用預設編碼表,處理單...