- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- Java基礎之FileInputStream和FileOutputStream流詳解
FileInputStream 用于讀取本地文件中的字節數據,繼承InputStream類(lèi)
FileOutputStream 將字節數據寫(xiě)到文件,繼承OutputStream類(lèi)
FileInputStream fis= new FileInputStream(“絕對路徑”);
FileOutputStream fos= new FileOutputStream(“絕對路徑”);
1.構造函數,打開(kāi)實(shí)際文件路徑連接來(lái)創(chuàng )建FileInputStream
FileInputStream(路徑);
2.關(guān)閉文件輸入輸出流,釋放有關(guān)系統資源
沒(méi)有返回值,一般搭配輸入輸出留的對象
close(); fis.close(); fos.close();
3.讀取數據字節,有返回值
read();返回的是字節的(0-255)內的字節值,讀一個(gè)自動(dòng)到下一個(gè),遇到-1即退出
read();//讀取一個(gè)數據字節, read(byte[] b);//將b.length個(gè)字節的數據讀入一個(gè) byte 數組中 read(byte[] b,int off,int len)//將off到len 個(gè)字節的數據讀入一個(gè)byte 數組中
4.從輸入流中跳過(guò)并丟棄 n 個(gè)字節的數據
kip(long n); //返回值為long
寫(xiě)入文件
write(int b);//將指定字節寫(xiě)入文件,寫(xiě)入字節形式的(0-255)int值. write(byte[] b); //將b.length 個(gè)字節從指定 byte 數組寫(xiě)入此文件 write(byte[] b, int off, int len); //將指定 byte 數組中從偏移量 off 開(kāi)始的 len 個(gè)字節寫(xiě)入文件
一個(gè)個(gè)字節讀入,并一個(gè)個(gè)字節輸出到另一個(gè)文件,即復制文件
class test1{ public static void main(String[] args) throws IOException { int b; FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt"); //創(chuàng )建輸入流對象 FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt"); //創(chuàng )建輸出流對象 while((b = fis.read()) != -1) { //將每次讀到的賦值給b System.out.println(b); fos.write(b); //將b中的字節寫(xiě)出去 } fis.close();/關(guān)流,釋放資源 fos.close(); } }
該測試代碼輸出的是對應的ASCII碼值,每一個(gè)換行都會(huì )在輸出對應的換行和回車(chē)鍵的ASCII碼
并且將text1的文件復制到text2文件,只不過(guò)是一個(gè)個(gè)字節傳送,比較緩慢
設置緩沖區,將一個(gè)個(gè)字節存放之后,在對應輸入輸出,加快了速度
class test1{ public static void main(String[] args) throws IOException { //int b; FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt"); //創(chuàng )建輸入流對象 FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt"); //創(chuàng )建輸出流對象 byte[] bytes = new byte[1024*10];//用數組當一個(gè)緩沖區 while(( fis.read(bytes)) != -1) { System.out.println(bytes); //將每次讀到的賦值給bytes fos.write(bytes); //將bytes中的字節寫(xiě)出去 } fis.close(); //關(guān)流,釋放資源 fos.close(); } }
可以將以上的方法在代碼中一個(gè)個(gè)嘗試
到此這篇關(guān)于Java基礎之FileInputStream和FileOutputStream流詳解的文章就介紹到這了,更多相關(guān)Java FileInputStream和FileOutputStream流內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站