什么是流?
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、從化ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的從化網(wǎng)站制作公司
流:程序和設(shè)備之間連接起來的一根用于數(shù)據(jù)傳輸?shù)墓艿?,流就是一根管道?/p>
流的分類:
按數(shù)據(jù)流的方向不同可以分為輸入流和輸出流。
按處理數(shù)據(jù)單位不同可以分為字節(jié)流和字符流。(一個(gè)字符是兩個(gè)字節(jié))
按功能不同可以分為節(jié)點(diǎn)(原始)流和處理(包裹)流。
字節(jié)流 字符流
輸入流 InputStream Reader
輸出流 OutputStream Writer
文件流:
讀取一個(gè)文件內(nèi)容并將其輸出到顯示器上,并統(tǒng)計(jì)讀取出來的字節(jié)的個(gè)數(shù)。字符串來表示操作系統(tǒng)的文件路徑時(shí),我們可以使用\\和/兩種方式來作為文件夾的路徑分隔符。
什么是字節(jié)流?
FileInputStream FileOutputStream
什么是字符流?
FileReader FileWriter
eg: import java.awt.*; public class test{ public static void main(String[] args){ FileReader fr=new FileRead("D:\\share\\test.java"); FileWriter fw=new FileWrite("d:/zhangsan.haha"); int ch; ch=fr.read(); while(-1 != ch){ fw.write(ch); //將test文件中fr的數(shù)據(jù)讀給程序,再將程序中的數(shù)據(jù)寫給fw的zhangsan文件夾中 ch=fr.read(); } fw.flush(); fr.close(); fw.close(); } }
字符流和字節(jié)流的區(qū)別:
字節(jié)流可以完成所有格式文件的賦值
字符流值可以完成文本文件的復(fù)制,卻無法完成視頻格式文件的復(fù)制。
因?yàn)樽止?jié)是不需要解碼和編碼的,將字節(jié)轉(zhuǎn)化為字符才存在解碼和編碼的問題。
字節(jié)流可以從所有格式的設(shè)備中讀取數(shù)據(jù),但字符流只能從文本格式的設(shè)備中讀寫數(shù)據(jù)。如果通過一個(gè)字節(jié)流把文本文件的內(nèi)容輸出到顯示器上,當(dāng)輸出漢字時(shí)就會(huì)出現(xiàn)亂碼。
緩沖流:Buffered
緩沖流就是帶有緩沖區(qū)的輸入輸出流
緩沖流可以顯著的減少我們對(duì)IO訪問的次數(shù),保護(hù)我們的硬盤。
緩沖流本身就是處理流,必須依附于節(jié)點(diǎn)流,處理流是包裹在原始節(jié)點(diǎn)上的流,相當(dāng)于包括在管道上的管道。
BufferedInputStream :帶緩沖的輸出流,允許一次向硬盤寫入多個(gè)字節(jié)的數(shù)據(jù)
BufferedOutputStream :帶緩沖區(qū)的輸入流,允許一次向程序中讀入多個(gè)字節(jié)的數(shù)據(jù)
BufferedWriter BufferedReader可以提高讀寫文本文件內(nèi)容的速度
eg: import java.awt.*;//帶緩沖區(qū)的字節(jié)流處理文件的速度要快于不帶緩沖區(qū)的字節(jié)流。 public class test{ public static void main(String[] args){ BufferedInputStream bis=new BufferedInputStream (new FileRead("D:\\share\\test.java")); BufferedOutputStream bos= new BufferedOutputStream (new FileWrite("d:/zhangsan.haha")); byte[] buf=new byte[1024]; int len; len=bis.read(buf); while(-1 != len){ bos.write(buf,0,len ); len=bis.read(buf); } bos.flush(); bos.close(); bis.close(); } }
轉(zhuǎn)換流:
outputStreamWrite 流是把OutputStrean流轉(zhuǎn)換成Writer流的流
inputStreamReader 流是把inputStrean流轉(zhuǎn)換成Reader流的流
print流:
print流只有輸出,沒有輸入
PrintWriter 輸出字符 PrintStream輸出字節(jié)
printWriter 與 printStream的區(qū)別:
printWriter提供了PrintStream的所有打印方法,既可以封裝OutputStream,也能封裝Writer.而PrintStream只能封裝OutputStream類型的字節(jié)流。
標(biāo)準(zhǔn)輸入輸出的重定向:
編程實(shí)現(xiàn)將鍵盤輸入的數(shù)據(jù)輸入到A文件中,如果輸入有誤,則把出錯(cuò)信息輸出到B文件中。
eg: public class test{ public static void main(String[] args){ PrintStream psOut=null; PrintStream psError=null; Scanner sc=null; try{ psOut=new PrintStream("d:/Out.txt"); psError=new PrintStream("d:/error.txt"); sc=new Scanner(System.in); int num; System.setOut(psOut); System.setErr(psError); while(true){ num=sc.nextInt(); System.out.println(num); } } catch(Exception e){ System.out.println("出錯(cuò)信息是:"); e.printStackTrace(); } } } }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
網(wǎng)站欄目:Java中流的有關(guān)知識(shí)點(diǎn)詳解
文章位置:http://jinyejixie.com/article8/jjhgop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站改版、面包屑導(dǎo)航、App開發(fā)、網(wǎng)站設(shè)計(jì)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)