IO流

1.IO流

  1.概念數組

    * IO流用來處理設備之間的數據傳輸ide

    * Java對數據的操做是經過流的方式編碼

    * Java用於操做流的類都在IO包中spa

    * 流按流向分爲兩種:輸入流(讀取數據),輸出流(寫入數據)。code

    * 流按操做類型分爲兩種:視頻

    * 字節流 : 字節流能夠操做任何數據,由於在計算機中任何數據都是以字節的形式存儲的對象

    * 字符流 : 字符流只能操做純字符數據,比較方便。blog

  2.IO流經常使用父類圖片

  * 字節流的抽象父類:資源

    * InputStream

    * OutputStream

  * 字符流的抽象父類:

    * Reader

    * Writer

  * 3.IO程序書寫

    * 使用前,導入IO包中的類

    * 使用時,進行IO異常處理

    * 使用後,釋放資源

 

 

2.FileInputStream

 1 //從一個文件中讀取數據
 2         /**
 3          * 1。建立一個文件輸入對象,並關聯a。txt
 4          * 2.定義一個遍歷,記錄每次讀到的字節
 5          * 3.循環遍歷打印讀出該內容
 6          * read()方法 依次讀取一個字節
 7          */
 8         FileInputStream file = new FileInputStream("a.txt");
 9         int b;
10         while((b = file.read()) != -1) {
11             System.out.println(b);
12         }
13         //釋放資源!!
14         file.close();
15     
16     /**
17      * throws拋出的是文件可能找不到的錯誤
18      * 讀文件是也有可能讀不成功,一樣須要進行異常處理
19      * FileNotFoundException是IOException的一個子類
20      * 輸出內容就是GBK編碼,緣由GBK編碼包含了ASCII碼錶
21      * -1表示文件的結尾,當遇到-1時,表示文件已經讀取完畢
22      * 
23      */

 

 

3.read()方法返回值爲何是int

  read()方法讀取的試試一個字節,爲何返回的是int而不是byte

    由於字節輸入流能夠操做任意類型的文件,好比圖片音頻等,這些文件底層都是以二進制形式存儲,若是每次讀取都返回byte,

    有可能在讀到中間的時候遇到11111111,那麼這11111111在byte中表示的是-1,而咱們的程序在遇到-1時中止運行,後面的數據

    會丟失,因此在讀取時用int類型,若是遇到11111111時會在前面補上3個字節的0,byte類型的-1就變成int類型的255

    這樣就能夠保證整個數據均可以讀取完成,讀取完成後,就會返回個-1,結束程序

 

4.FileOutputStream

  

 1    //write()方法一次錄入一個字節
 2     //若是沒有b.txt的話,就建立一個
 3     FileOutputStream file = new FileOutputStream("b.txt");
 4     //雖然輸入的時int類型,但在寫出時會自動轉爲byte類型,去掉前面的3個字節
 5     file.write(98);
 6     //釋放資源
 7     file.close();
 8     
 9     
10     //追加功能
11     //從新在錄入時,會把原來的數據清除掉,在去添加,也就是把原來的數據覆蓋掉
12     //在關聯文件時,加一個true的關鍵字,就不會覆蓋,而是在原來數據以後在添加內容
13     FileOutputStream file1 =  new FileOutputStream("b.txt",true);
14     file1.write(98);
15     file1.write(99);

 

 

5.拷貝文件

  

 1      FileInputStream file = new FileInputStream("F:\\21班Java基礎課程\\課件視頻\\day20_IO流\\video\\01.wmv");
 2         FileOutputStream file1 = new FileOutputStream("F:\\21班Java基礎課程\\課件視頻\\day20_IO流\\video\\複製.wmv");
 3         //獲取關聯文件的全部字節
 4         int i = file.available();
 5         //聲明一個和文件大小同樣的byte的數組
 6         byte [] bytes = new byte[i];
 7         //一次性的讀完整個文件的全部內容
 8         file.read(bytes);
 9         //把這個內容一次性的寫入指定的文件
10         file1.write(bytes);
11         file.close();
12         file1.close();
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息