JAVA入門小小白學(xué)習(xí)中ing

1掂铐、FileReader

????????同F(xiàn)ileInputStream品擎,單位不同埋合。

讀取:

????????read()-->int萄传,讀取一個字符甚颂,返回值就是讀到的數(shù)據(jù),末尾-1.

????????read(char[] cs)-->int秀菱,讀取多個字符振诬,存入cs字符數(shù)組中,返回值讀取的個數(shù)衍菱。末尾-1

????????read(char[] cs,int off,int len)-->int赶么,讀取多個字符,末尾-1

字節(jié)流:操作的單位是字節(jié)脊串,可以讀取一個字節(jié)辫呻,也可以讀取多個字節(jié),存入字節(jié)數(shù)組:byte[] bs琼锋,

字符流:操作的單位是字符放闺,可以讀取一個字符,也可以讀取多個字符缕坎,存入字符數(shù)組:char[] cs怖侦,

?

選擇流的時候,到低是選擇字節(jié)為單位的還是字符單位的谜叹?

數(shù)據(jù):計算機存儲數(shù)據(jù)匾寝,都是采用2進制:01碼

單位:

????????一個0或一個1,叫一個bit叉谜,位

????????8個0或1旗吁,叫一個byte,字節(jié)

????????所有的數(shù)據(jù)的本質(zhì)停局,都是字節(jié)為單位的很钓。

????????圖片,音頻董栽,視頻码倦,壓縮文件,exe可執(zhí)行文件锭碳,包括文本文件袁稽。。

????????字符流:字符——>字符編碼(GBK,UTF-8)

????????a:97

????????中:20013

【禁止】G芘住M破补疑!使用字符流去操作非字符的文件。比如音頻歹撒,視頻莲组,圖片等等。暖夭。锹杈。

字符流:

1、使用字節(jié)流(FileInputStream)讀取一個文本文件(包含中文)迈着,邊讀邊看(打印)竭望,亂碼。原因裕菠?

GBK咬清,UTF-8,一個中文可能占多個字節(jié)糕韧。

如果使用字節(jié)流讀取數(shù)據(jù)枫振,按照字節(jié)來讀,一個字節(jié)一個字節(jié)的讀取萤彩,讀了一個字節(jié)粪滤,打印對應(yīng)的字符,所以存在了亂碼雀扶。一個漢字是多個字節(jié)杖小,但是讀一個字節(jié)看一個字節(jié),肯定亂碼愚墓。

2予权、字符流 = 字節(jié)流 + 解碼過程

字節(jié)組合操作 ——>當前環(huán)境的編碼集

字符流將讀取的編碼值,根據(jù)編碼集浪册,對應(yīng)的字符扫腺。

3、總結(jié):

所有的文件都可以是使用字節(jié)流村象。

圖片笆环,音頻,視頻厚者,壓縮文件躁劣,exe可以執(zhí)行文件。库菲。账忘。

文本文件,建議使用字符流。因為里面都是文本(字符)鳖擒。

2溉浙、FileWriter

1、構(gòu)造方法:

????????FileWriter(String path);

????????FileWriter(File file);

????????FileWriter(String path,boolean append);

????????FileWriter(File file, boolean append);

2蒋荚、寫出數(shù)據(jù)

????????void write(int)放航,將參數(shù)這個字符,寫出去

????????void write(char[] cs)圆裕,將整個cs數(shù)組的所有數(shù)據(jù),全部寫出

????????void write(char[] cs,int off,int len)荆几,將cs數(shù)組的一部分寫出吓妆,從下標off開始,len個

????????void write(String s)吨铸,直接將一個字符串寫出

????????void write(String s, int off,int len)行拢,寫出字符串的一部分

3、InputStreamReader

4诞吱、OutputStreamWriter

轉(zhuǎn)換流:輸入:InputStreamReader舟奠,繼承了Reader,讀取

轉(zhuǎn)換流:輸出:OutputStreamWriter房维,繼承了Writer沼瘫,寫出

構(gòu)造方法:

InputStreamReader(InputStream);//讀取字符為單位的數(shù)據(jù)

OutputStreamWriter(OutputStream);//寫出字符為單位的數(shù)據(jù)

InputStreamReader(InputStream,"編碼集");//讀取字符為單位的數(shù)據(jù)

OutputStreamWriter(OutputStream,"編碼集");//寫出字符為單位的數(shù)據(jù)

轉(zhuǎn)換了單位:字節(jié)-字符之間的橋梁

設(shè)置編碼:因為java采用的編碼Unicode編碼咙俩,程序應(yīng)該使用utf-8的編碼集耿戚。但是eclipse這個軟件的工作空間,默認的編碼集是gbk阿趁。為了一勞永逸膜蛔,更改工作空間的編碼集為utf-8。

OutputStream流:字節(jié)輸出流

FileOutputStream

write(int),寫一個字節(jié)

write(byte[] bs )脖阵,寫一個字節(jié)數(shù)組的數(shù)據(jù)

write(byte[] bs,int off, int len)皂股,寫出一個字節(jié)數(shù)組的一部分

?

Writer流:字符輸出流

FileWriter

write(int),寫一個字符

write(char[] cs)命黔,寫一個字符數(shù)組的數(shù)據(jù)

write(char[] cs,int off,int len)

write(String s)

write(String s,int off,int len)

A呜呐、4大基類流

????????InputStream

????????OutputSteam

????????Reader

????????Writer

B:文件流

????????FileInputStream

????????FileOutputStream

????????FileReader

????????FileWriter

C、緩存流

? ? ? ? BufferedInputStream

????????BufferedOutputStream

????????BufferedReader

????????BufferedWriter

D纷铣、對象流

????????ObjectInputStream

????????ObjectOutputStream

E:轉(zhuǎn)換流:

????????InputStreamReader

????????OutputStreamWriter

????????轉(zhuǎn)換單位:字節(jié)-字符之間的橋梁

功能:

????????節(jié)點流:直接接觸數(shù)據(jù)源的流

????????處理流:也叫過濾流卵史,套在別的流上的流。

關(guān)閉的時候:倒著關(guān)閉搜立∫郧或者干脆直接關(guān)閉處理流。

5、BufferedInputStream

6忧设、BufferedOutoutStream

7刁标、BufferedReader

????????新增的方法:readLine()--->String,每次讀取一行址晕。

8膀懈、BufferedWriter

????????新增的方法:newLine()-->void

????????寫換行:write("\r\n");????

????????緩存流(重點掌握):目的:高效谨垃。

原理:自帶了一個數(shù)組作為緩沖區(qū)启搂。讀寫發(fā)生在數(shù)組上。數(shù)組占內(nèi)存刘陶,速度很快胳赌。

FileInputStream

read()-->int,訪問磁盤,操作文件匙隔,讀一個字節(jié)回來疑苫。。

?

BufferedInputStream

read()-->int,先找緩沖區(qū)纷责,從緩沖區(qū)中讀取一個字節(jié)回來捍掺。fill(),讀取磁盤文件再膳,填充緩沖區(qū)

byte[] bs ,作為緩沖區(qū):1024*8挺勿。


?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市饵史,隨后出現(xiàn)的幾起案子满钟,更是在濱河造成了極大的恐慌,老刑警劉巖胳喷,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件湃番,死亡現(xiàn)場離奇詭異,居然都是意外死亡吭露,警方通過查閱死者的電腦和手機吠撮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讲竿,“玉大人泥兰,你說我怎么就攤上這事√赓鳎” “怎么了鞋诗?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迈嘹。 經(jīng)常有香客問我削彬,道長全庸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任融痛,我火速辦了婚禮壶笼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雁刷。我一直安慰自己覆劈,他們只是感情好,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布沛励。 她就那樣靜靜地躺著责语,像睡著了一般。 火紅的嫁衣襯著肌膚如雪目派。 梳的紋絲不亂的頭發(fā)上鹦筹,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音址貌,去河邊找鬼。 笑死徘键,一個胖子當著我的面吹牛练对,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吹害,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼螟凭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了它呀?” 一聲冷哼從身側(cè)響起螺男,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纵穿,沒想到半個月后下隧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡谓媒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年淆院,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片句惯。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡土辩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抢野,到底是詐尸還是另有隱情拷淘,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布指孤,位于F島的核電站启涯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逝嚎,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一扁瓢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧补君,春花似錦引几、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至叽掘,卻和暖如春楣铁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背更扁。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工盖腕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浓镜。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓溃列,卻偏偏與公主長得像,于是被迫代替她去往敵國和親膛薛。 傳聞我的和親對象是個殘疾皇子听隐,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349