1. 程式人生 > >10_IO_第10天(字元流、字元緩衝流)

10_IO_第10天(字元流、字元緩衝流)

---恢復內容開始---

今日學習目標

  • 能夠說出IO流的分類和功能
  • 能夠使用FileWirter寫資料到檔案
  • 能夠明確FileWriter寫資料使用兩種路徑的區別
  • 能夠說出FileWriter中關閉和重新整理方法的區別
  • 能夠使用FileWriter寫資料的5個方法
  • 能夠使用FileWriter寫資料實現換行和追加寫
  • 能夠使用FileReader讀資料
  • 能夠使用FileReader讀資料一次一個字元陣列
  • 能夠明確字元緩衝流的作用和基本用法
  • 能夠使用緩衝流的特殊功能

FileWriter和FileReader

IO流概述和分類

  • IO流用來處理裝置之間的資料傳輸
    • 檔案複製(U盤拷貝內))
    • 上傳檔案(微信圖片,QQ空間圖片)
    • 下載檔案(迅雷)
  • IO流分類
    • 輸出流
      • FileWriter
    • 輸入流
      • FileReader
  • 圖解

 

FileWriter

FileWriter寫資料

  • 構造方法
    • FileWriter(String fileName)傳遞一個檔名稱  
  • 成員方法
    • void write(Stringstr)往檔案中寫入一個字串。  
    • void flush()重新整理該流的緩衝,把記憶體緩衝區中的資料重新整理到檔案中。  
    • void close()關閉此流,但要先重新整理它。  
  • 輸出流寫資料的步驟:
    • 1.建立輸出流物件  
    • 2.呼叫輸出流物件的寫資料的方法  
    • 3.釋放資源  

 

import java.io.FileWriter;
import java.io.IOException;

public class Demo01FileWriter {
    public static void main(String[] args) throws IOException {
        //建立輸出流物件
        FileWriter fw = new
FileWriter("d:\\a.txt"); /* * 建立輸出流物件醉了哪些事情: * A:呼叫系統資源建立了一個檔案 * B:建立輸出流物件 * C:把輸出流物件指向檔案 */ //呼叫輸出流物件的寫資料的方法 //寫一個字串資料 fw.write("IO流你好"); //資料沒有直接寫到檔案,其實是寫到了記憶體緩衝區 fw.flush(); //釋放資源 //通知系統釋放和該檔案相關的資源 fw.close(); //while(true){} } }

程式碼執行之後會在d盤目錄下生成一個a.txt 檔案,檔案內容為IO流你好。

 

FileWriter寫資料路徑問題及關閉和重新整理方法的區別

  • 路徑:
    • 相對路徑:相對當前專案而言的,在專案的根目錄下(a.txt)
    • 絕對路徑:以碟符開始的路徑(d:\\a.txt)
  • close()和flush()方法的區別:
    • flush():重新整理緩衝區。流物件還可以繼續使用。
    • close():先重新整理緩衝區,然後通知系統釋放資源。流物件不可以再被使用了。  
import java.io.FileWriter;
import java.io.IOException;

public class Demo02FileWriter {
    public static void main(String[] args) throws IOException {
        //建立輸出流物件
        //FileWriter fw = new FileWriter("d:\\a.txt");
        FileWriter fw = new FileWriter("a.txt");
        //呼叫輸出流物件的寫資料方法,並重新整理緩衝區
        fw.write("helloworld");
        fw.flush();
        fw.write("java");
        fw.flush();
        //釋放資源
        fw.close();
        
        //Stream closed    流關閉
        //fw.write("javaee");
        //fw.flush();
        //這裡需要關閉流,不然就會報錯,提示要關閉流
    }
}