Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解
一、前言
FileInputStream 用于讀取本地文件中的字節(jié)數(shù)據(jù),繼承InputStream類
FileOutputStream 將字節(jié)數(shù)據(jù)寫到文件,繼承OutputStream類
二、創(chuàng)建流對象
FileInputStream fis= new FileInputStream(“絕對路徑”);
FileOutputStream fos= new FileOutputStream(“絕對路徑”);
三、FileInputStream常用方法
1.構(gòu)造函數(shù),打開實際文件路徑連接來創(chuàng)建FileInputStream
FileInputStream(路徑);
2.關(guān)閉文件輸入輸出流,釋放有關(guān)系統(tǒng)資源
沒有返回值,一般搭配輸入輸出留的對象
close(); fis.close(); fos.close();
3.讀取數(shù)據(jù)字節(jié),有返回值
read();返回的是字節(jié)的(0-255)內(nèi)的字節(jié)值,讀一個自動到下一個,遇到-1即退出
read();//讀取一個數(shù)據(jù)字節(jié), read(byte[] b);//將b.length個字節(jié)的數(shù)據(jù)讀入一個 byte 數(shù)組中 read(byte[] b,int off,int len)//將off到len 個字節(jié)的數(shù)據(jù)讀入一個byte 數(shù)組中
4.從輸入流中跳過并丟棄 n 個字節(jié)的數(shù)據(jù)
kip(long n); //返回值為long
四、FileOutputStream常用方法
寫入文件
write(int b);//將指定字節(jié)寫入文件,寫入字節(jié)形式的(0-255)int值. write(byte[] b); //將b.length 個字節(jié)從指定 byte 數(shù)組寫入此文件 write(byte[] b, int off, int len); //將指定 byte 數(shù)組中從偏移量 off 開始的 len 個字節(jié)寫入文件
五、輸入輸出流測試代碼
一個個字節(jié)讀入,并一個個字節(jié)輸出到另一個文件,即復制文件
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中的字節(jié)寫出去
}
fis.close();/關(guān)流,釋放資源
fos.close();
}
}
該測試代碼輸出的是對應(yīng)的ASCII碼值,每一個換行都會在輸出對應(yīng)的換行和回車鍵的ASCII碼
并且將text1的文件復制到text2文件,只不過是一個個字節(jié)傳送,比較緩慢
設(shè)置緩沖區(qū),將一個個字節(jié)存放之后,在對應(yīng)輸入輸出,加快了速度
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];//用數(shù)組當一個緩沖區(qū)
while(( fis.read(bytes)) != -1) {
System.out.println(bytes); //將每次讀到的賦值給bytes
fos.write(bytes); //將bytes中的字節(jié)寫出去
}
fis.close(); //關(guān)流,釋放資源
fos.close();
}
}
可以將以上的方法在代碼中一個個嘗試
到此這篇關(guān)于Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解的文章就介紹到這了,更多相關(guān)Java FileInputStream和FileOutputStream流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot 2.0 整合sharding-jdbc中間件實現(xiàn)數(shù)據(jù)分庫分表
這篇文章主要介紹了SpringBoot 2.0 整合sharding-jdbc中間件,實現(xiàn)數(shù)據(jù)分庫分表,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-06-06
Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼
這篇文章主要介紹了Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
使用@Builder導致無法創(chuàng)建無參構(gòu)造方法的解決
這篇文章主要介紹了使用@Builder導致無法創(chuàng)建無參構(gòu)造方法的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

