流按運算元據分:位元組流,字元流
按流向分為:輸入流輸出流
英文編碼表: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 可以操作任何形式的資料 字元流 由於對於文字資料,有不同的碼表編碼格式,字元流採用預設編碼表,處理單...