Java基礎之FileInputStream和FileOutputStream流詳解

一、前言

FileInputStream 用於讀取本地文件中的字節數據,繼承InputStream類

FileOutputStream 將字節數據寫到文件,繼承OutputStream類

二、創建流對象

FileInputStream fis= new FileInputStream(“絕對路徑”);

FileOutputStream fos= new FileOutputStream(“絕對路徑”);

三、FileInputStream常用方法

1.構造函數,打開實際文件路徑連接來創建FileInputStream

FileInputStream(路徑); 

2.關閉文件輸入輸出流,釋放有關系統資源

沒有返回值,一般搭配輸入輸出留的對象

close();
fis.close();
fos.close();  

3.讀取數據字節,有返回值

read();返回的是字節的(0-255)內的字節值,讀一個自動到下一個,遇到-1即退出

read();//讀取一個數據字節,
read(byte[] b);//將b.length個字節的數據讀入一個 byte 數組中    
read(byte[] b,int off,int len)//將off到len 個字節的數據讀入一個byte 數組中

4.從輸入流中跳過並丟棄 n 個字節的數據

kip(long n); //返回值為long  

四、FileOutputStream常用方法

寫入文件

write(int b);//將指定字節寫入文件,寫入字節形式的(0-255)int值.
write(byte[] b);  //將b.length 個字節從指定 byte 數組寫入此文件
write(byte[] b, int off, int len); //將指定 byte 數組中從偏移量 off 開始的 len 個字節寫入文件

五、輸入輸出流測試代碼

一個個字節讀入,並一個個字節輸出到另一個文件,即復制文件

class test1{
    public static void main(String[] args) throws IOException {
        int b;
        FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt");       //創建輸入流對象
        FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt");   //創建輸出流對象
        while((b = fis.read()) != -1) { //將每次讀到的賦值給b
            System.out.println(b);    
            fos.write(b);   //將b中的字節寫出去
        }
        fis.close();/關流,釋放資源
        fos.close();
        }

    }

該測試代碼輸出的是對應的ASCII碼值,每一個換行都會在輸出對應的換行和回車鍵的ASCII碼

並且將text1的文件復制到text2文件,隻不過是一個個字節傳送,比較緩慢

設置緩沖區,將一個個字節存放之後,在對應輸入輸出,加快瞭速度

class test1{
    public static void main(String[] args) throws IOException {
        //int b;
        FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt");       //創建輸入流對象
        FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt");   //創建輸出流對象
        byte[] bytes = new byte[1024*10];//用數組當一個緩沖區
        while(( fis.read(bytes)) != -1) {
            System.out.println(bytes);  //將每次讀到的賦值給bytes
            fos.write(bytes); //將bytes中的字節寫出去
        }

        fis.close(); //關流,釋放資源
        fos.close();
        }
    }

可以將以上的方法在代碼中一個個嘗試

到此這篇關於Java基礎之FileInputStream和FileOutputStream流詳解的文章就介紹到這瞭,更多相關Java FileInputStream和FileOutputStream流內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: