Java是一種可以撰寫跨平臺應用軟件的面向?qū)ο蟮某绦蛟O計語言茅逮。Java 技術具有卓越的通用性、高效性判哥、平臺移植性和安全性献雅,廣泛應用于PC、數(shù)據(jù)中心塌计、游戲控制臺挺身、科學超級計算機、移動電話和互聯(lián)網(wǎng)锌仅,同時擁有全球最大的開發(fā)者專業(yè)社群章钾。
給你學習路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
Java 讀寫操作
IO類圖
小編推薦一個學Java的學習裙【 六五零墙贱,五五四,六零七 】贱傀,無論你是大牛還是小白惨撇,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學習!裙內(nèi)有開發(fā)工具府寒,很多干貨和技術資料分享魁衙!
1). java讀寫文件的IO流分兩大類,字節(jié)流和字符流株搔,基類分別是字符:Reader和Writer剖淀;字節(jié):InputStream和OutPutStream。
2). 字符流分為FileReader和FileWrtier纤房,這兩個的父類是InputStreamReader和OutStreamWrtier纵隔。
3). 字節(jié)流分為FileInputStream和FileOutPutStream。
4). 這幾個類之間的關系網(wǎng)是:
Reader->InputStreamReader->FileReader
Reader->BufferedReader
InputStream->FileInputStream
InputStream->FilterInputStream->BufferedInputStream
InputStreamReader帆卓, 它是字節(jié)轉(zhuǎn)換為字符的橋梁
字節(jié)流字符流區(qū)別
1).字節(jié)流也稱為原始數(shù)據(jù)巨朦,需要用戶讀入后進行相應的編碼轉(zhuǎn)換米丘。而字符流的
實現(xiàn)是基于自動轉(zhuǎn)換的剑令,讀取數(shù)據(jù)時會把數(shù)據(jù)按照JVM的默認編碼自動轉(zhuǎn)換成字
符。
2).字符流處理的單元為2個字節(jié)的Unicode字符拄查,分別操作字符吁津、字符數(shù)組或字
符串,而字節(jié)流處理單元為1個字節(jié)堕扶,操作字節(jié)和字節(jié)數(shù)組碍脏。
所以字符流是由Java虛擬機將字節(jié)轉(zhuǎn)化為2個字節(jié)的Unicode字符為單位的字符而
成的。
3).字節(jié)流可用于任何類型的對象稍算,包括二進制對象典尾,而字符流只能處理字符或
者字符串,字節(jié)流提供了處理任何類型的IO操作的功能糊探,但它不能直接處理
Unicode字符钾埂,而字符流就可以;
因此:音頻文件科平、圖片褥紫、歌曲,就用字節(jié)流好點瞪慧;如果是中文(文本)的髓考,用字符流更
好。
小編推薦一個學Java的學習裙【 六五零弃酌,五五四氨菇,六零七 】儡炼,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學習查蓉!裙內(nèi)有開發(fā)工具射赛,很多干貨和技術資料分享!
按行操作
在FileReader中的方法都是從InputStreamReader中繼承過來的奶是。read()方法是比較好費時間的楣责,如果為了提高效率我們可以使用BufferedReader對Reader進行包裝,這樣可以提高讀取得速度聂沙,我們可以一行一行的讀取文本秆麸,使用readLine()方法。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt")));
流的程序步驟
1).創(chuàng)建文件對象 File file = new File("xxx.txt");
2).用流裝載文件 FileReader fr = new FileReader(file);
3).如果用緩沖區(qū)及汉,則用緩沖區(qū)裝載流沮趣,用緩沖區(qū)是為了提高讀寫性能
BufferReader br = new BufferReader(fr);
4).開始讀寫操作 String s = null; StringBuffer sb = new StringBuffer();
while((s=br.readLine()!=null) { sb.append(s); } 如果遇到字節(jié)流要轉(zhuǎn)換成
字符流,則在緩沖區(qū)前加一步 InputStreamReader isr = new
InpuStreamReader(InputStream in); 或者需要編碼轉(zhuǎn)換的坷随,則在緩沖區(qū)前加一
步 InputStreamReader isr = new InpuStreamReader(InputStream in房铭,Charset cs);
5). 關閉流操作,先開的流后關閉温眉。
實例操作
1)以字節(jié)流讀寫文件缸匪,如:音頻、圖片等
2). 以字符讀取文件类溢,以行讀寫文件
小編推薦一個學Java的學習裙【 六五零凌蔬,五五四,六零七 】闯冷,無論你是大牛還是小白砂心,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學習!裙內(nèi)有開發(fā)工具蛇耀,很多干貨和技術資料分享辩诞!
每天學習一點,每天進步一點纺涤。歡迎關注译暂。