OutputStream字節(jié)輸出流
java.io.OutputStream抽象類是表示字節(jié)輸出流的所有類的超類谨履,將指定的字節(jié)信息寫出到目的地狮含。它定義了字節(jié)輸出流的基本共性功能方法京痢。
1由驹、public void close() :關(guān)閉此輸出流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源邓厕。?
2草讶、public void flush() :刷新此輸出流并強(qiáng)制任何緩沖的輸出字節(jié)被寫出洽糟。?
3、public void write(byte[] b):將 b.length字節(jié)從指定的字節(jié)數(shù)組寫入此輸出流堕战。?
注意:1坤溃、如果寫的第一個字節(jié)是正數(shù)(0~127),那么顯示的時候會查詢ASCII碼表
? ? ? ? ? ?2嘱丢、如果寫的第一個字節(jié)是負(fù)數(shù)薪介,那第一個字節(jié)會和第二個字節(jié),兩個字節(jié)組成一個中文顯示越驻,查詢系統(tǒng)默認(rèn)碼表(GBK)
4汁政、public void write(byte[] b, int off, int len) :從指定的字節(jié)數(shù)組寫入 len字節(jié),從偏移量 off開始輸出到此輸出流缀旁。?
寫入字符串的方法:使用byte[] getBytes() 把字符串轉(zhuǎn)換為字節(jié)數(shù)組记劈,然后調(diào)用write方法
5、public abstract void write(int b) :將指定的字節(jié)輸出流并巍。
注意:close方法目木,當(dāng)完成流的操作時,必須調(diào)用此方法懊渡,釋放系統(tǒng)資源嘶窄。
FileOutputStream
java.io.FileOutputStream extends OutputStream 文件輸出流,用于將數(shù)據(jù)寫出到文件距贷。
構(gòu)造方法:
public FileOutputStream(File file):創(chuàng)建文件輸出流以寫入由指定的 File對象表示的文件柄冲。
public FileOutputStream(String name): 創(chuàng)建文件輸出流以指定的名稱寫入文件。
構(gòu)造方法作用:1忠蝗、創(chuàng)建一個FileOutputStream對象
? ? ? ? ? ? ? ? ? ? ? ? ?2现横、會根據(jù)構(gòu)造方法中傳遞的文件/文件路徑,創(chuàng)建一個空的文件
? ? ? ? ? ? ? ? ? ? ? ? ?3、會把FileOutputStream對象指向創(chuàng)建好的文件
寫入數(shù)據(jù)的原理:
? ? java程序 --> JVM(java虛擬機(jī)) --> OS(操作系統(tǒng)) --> OS調(diào)用寫數(shù)據(jù)方法 --> 把數(shù)據(jù)寫入到文件中
字節(jié)輸出流使用步驟:
? ? 1戒祠、創(chuàng)建一個FileOutputStream對象骇两,構(gòu)造方法中傳遞寫入數(shù)據(jù)的目的地
? ? 2、調(diào)用FileOutputStream對象中的方法write姜盈,把數(shù)據(jù)寫入到文件中
? ? 3低千、釋放資源(流使用會占用一定的內(nèi)存,使用完畢要把內(nèi)存清空馏颂,提高程序效率)
數(shù)據(jù)追加續(xù)寫
使用兩個參數(shù)的構(gòu)造方法:
public FileOutputStream(File file, boolean append)`: 創(chuàng)建文件輸出流以寫入由指定的 File對象表示的文件示血。
public FileOutputStream(String name, boolean append)`: 創(chuàng)建文件輸出流以指定的名稱寫入文件。
其中:File file救拉、String name:寫入數(shù)據(jù)的目的地
? ? ? ? ? ?append:追加寫開關(guān)难审,true(創(chuàng)建對象不會覆蓋原文件,繼續(xù)在文件的末尾追加寫數(shù)據(jù))亿絮,false(創(chuàng)建一個新文件告喊,覆蓋原文件)
寫換行:
需要換行符,其中windows(“\r\n”)派昧、linux(“/n”)黔姜、mac(“/r”)
InputStream字節(jié)輸入流
java.io.InputStream抽象類是表示字節(jié)輸入流的所有類的超類,可以讀取字節(jié)信息到內(nèi)存中蒂萎。它定義了字節(jié)輸入流的基本共性功能方法秆吵。
public void close() :關(guān)閉此輸入流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源。? ?
public abstract int read(): 從輸入流讀取數(shù)據(jù)的下一個字節(jié)岖是,讀取到文件的末尾返回-1帮毁。
public int read(byte[] b): 從輸入流中讀取一些字節(jié)數(shù)实苞,并將它們存儲到字節(jié)數(shù)組 b中 豺撑。
注意:close方法,當(dāng)完成流的操作時黔牵,必須調(diào)用此方法聪轿,釋放系統(tǒng)資源。
FileInputStream
java.io.FileInputStream extends?InputStream 類是文件輸入流猾浦,從文件中讀取字節(jié)陆错。(把硬盤文件中的數(shù)據(jù)讀取到內(nèi)存中使用)
構(gòu)造方法:
FileInputStream(File file): 通過打開與實(shí)際文件的連接來創(chuàng)建一個 FileInputStream ,該文件由文件系統(tǒng)中的 File對象 file命名金赦。
FileInputStream(String name): 通過打開與實(shí)際文件的連接來創(chuàng)建一個 FileInputStream 音瓷,該文件由文件系統(tǒng)中的路徑名 name命名。?
構(gòu)造方法的作用:
1夹抗、創(chuàng)建一個FileInputStream對象
2绳慎、把FileInputStream對象指向構(gòu)造方法中要讀取的文件
讀取數(shù)據(jù)的原理:
? ? java程序 --> JVM(java虛擬機(jī)) --> OS(操作系統(tǒng)) --> OS調(diào)用讀取數(shù)據(jù)方法 --> 讀取數(shù)據(jù)
字節(jié)輸入流使用步驟:
????1、創(chuàng)建一個FileInputStream對象,構(gòu)造方法中綁定要讀取的數(shù)據(jù)源
????2杏愤、調(diào)用FileInputStream對象中的方法read靡砌,讀取文件
? ? 3、釋放資源
字節(jié)輸入流一次讀取一個字節(jié):int read()
其中:方法的返回值int是每次讀取到的字節(jié)
字節(jié)輸入流一次讀取多個字節(jié):int read(byte[] b)珊楼;
其中:1通殃、參數(shù)byte[]的作用是起到緩沖的作用,存儲每次讀取到的多個字節(jié)厕宗,數(shù)組的長度一般定義1024(1kb)或者1024的整數(shù)倍
? ? ? ? ? ?2画舌、方法的返回值int是每次讀取的有效字節(jié)個數(shù)