Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解
FileInputStream 用于讀取本地文件中的字節(jié)數(shù)據(jù),繼承InputStream類(lèi)
FileOutputStream 將字節(jié)數(shù)據(jù)寫(xiě)到文件,繼承OutputStream類(lèi)
二、創(chuàng)建流對(duì)象FileInputStream fis= new FileInputStream(“絕對(duì)路徑”);
FileOutputStream fos= new FileOutputStream(“絕對(duì)路徑”);
三、FileInputStream常用方法1.構(gòu)造函數(shù),打開(kāi)實(shí)際文件路徑連接來(lái)創(chuàng)建FileInputStream
FileInputStream(路徑);
2.關(guān)閉文件輸入輸出流,釋放有關(guān)系統(tǒng)資源
沒(méi)有返回值,一般搭配輸入輸出留的對(duì)象
close();fis.close();fos.close();
3.讀取數(shù)據(jù)字節(jié),有返回值
read();返回的是字節(jié)的(0-255)內(nèi)的字節(jié)值,讀一個(gè)自動(dòng)到下一個(gè),遇到-1即退出
read();//讀取一個(gè)數(shù)據(jù)字節(jié),read(byte[] b);//將b.length個(gè)字節(jié)的數(shù)據(jù)讀入一個(gè) byte 數(shù)組中 read(byte[] b,int off,int len)//將off到len 個(gè)字節(jié)的數(shù)據(jù)讀入一個(gè)byte 數(shù)組中
4.從輸入流中跳過(guò)并丟棄 n 個(gè)字節(jié)的數(shù)據(jù)
kip(long n); //返回值為long 四、FileOutputStream常用方法
寫(xiě)入文件
write(int b);//將指定字節(jié)寫(xiě)入文件,寫(xiě)入字節(jié)形式的(0-255)int值.write(byte[] b); //將b.length 個(gè)字節(jié)從指定 byte 數(shù)組寫(xiě)入此文件write(byte[] b, int off, int len); //將指定 byte 數(shù)組中從偏移量 off 開(kāi)始的 len 個(gè)字節(jié)寫(xiě)入文件五、輸入輸出流測(cè)試代碼
一個(gè)個(gè)字節(jié)讀入,并一個(gè)個(gè)字節(jié)輸出到另一個(gè)文件,即復(fù)制文件
class test1{ public static void main(String[] args) throws IOException {int b;FileInputStream fis = new FileInputStream('C:Users86135Desktoptext1.txt'); //創(chuàng)建輸入流對(duì)象FileOutputStream fos = new FileOutputStream('C:Users86135Desktoptext2.txt'); //創(chuàng)建輸出流對(duì)象while((b = fis.read()) != -1) { //將每次讀到的賦值給b System.out.println(b);fos.write(b); //將b中的字節(jié)寫(xiě)出去}fis.close();/關(guān)流,釋放資源fos.close();} }
該測(cè)試代碼輸出的是對(duì)應(yīng)的ASCII碼值,每一個(gè)換行都會(huì)在輸出對(duì)應(yīng)的換行和回車(chē)鍵的ASCII碼
并且將text1的文件復(fù)制到text2文件,只不過(guò)是一個(gè)個(gè)字節(jié)傳送,比較緩慢
設(shè)置緩沖區(qū),將一個(gè)個(gè)字節(jié)存放之后,在對(duì)應(yīng)輸入輸出,加快了速度
class test1{ public static void main(String[] args) throws IOException {//int b;FileInputStream fis = new FileInputStream('C:Users86135Desktoptext1.txt'); //創(chuàng)建輸入流對(duì)象FileOutputStream fos = new FileOutputStream('C:Users86135Desktoptext2.txt'); //創(chuàng)建輸出流對(duì)象byte[] bytes = new byte[1024*10];//用數(shù)組當(dāng)一個(gè)緩沖區(qū)while(( fis.read(bytes)) != -1) { System.out.println(bytes); //將每次讀到的賦值給bytes fos.write(bytes); //將bytes中的字節(jié)寫(xiě)出去}fis.close(); //關(guān)流,釋放資源fos.close();} }
可以將以上的方法在代碼中一個(gè)個(gè)嘗試
到此這篇關(guān)于Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解的文章就介紹到這了,更多相關(guān)Java FileInputStream和FileOutputStream流內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python web框架的總結(jié)2. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式3. Python如何進(jìn)行時(shí)間處理4. python使用ctypes庫(kù)調(diào)用DLL動(dòng)態(tài)鏈接庫(kù)5. 詳解Python模塊化編程與裝飾器6. Python 日期與時(shí)間轉(zhuǎn)換的方法7. Python中l(wèi)ogger日志模塊詳解8. Python實(shí)現(xiàn)迪杰斯特拉算法過(guò)程解析9. html小技巧之td,div標(biāo)簽里內(nèi)容不換行10. python裝飾器三種裝飾模式的簡(jiǎn)單分析
