16.12I/O編程概要

  1. 在java中使用File類表示文件本身,可以直接使用此類完成文件的各種操作,如創建、刪除等。在開發中可以利用遞歸的形式進行子目錄列出的操作。
  2. 輸入流,輸出流。主要分爲字節流(OutputSteam,InputStream)和字符流(Write、Reader)兩種,但是在傳輸中以字節流操作較多,字符流在操作的時候要用到緩衝區,而字節流沒有使用緩衝區。字符流適用於中文傳輸操作。
  3. 字節流或者字符流都是以抽象類的形式定義,根據其使用的子類不同,輸入或輸出的位置也不同。例如,如果使用文件流實例化,則輸入和輸出的終端就是文件;如果使用內存流實例化,則輸入和輸出的終端就是內存,此類設計充分體現出了面向對象多態性的設計特點。
  4. 在I/O包中可以使用OutputStreamWrite和InputStreamReader完成字符流與字節流之間的轉換操作,FileWrite是OutputStreamWrite的子類,而FileReader是InputStreamReader的子類。
  5. 使用ByteArrayInputStream和ByteArrayOutputStream可以對內存進行輸入,輸出操作。
  6. 當程序進行數據輸出時,可以通過打印流(PrinrStream,PrintWrite)簡化輸出操作。
  7. 管道流可以實現兩個線程之間的通信,通信前要使用connect()方法進行管道連接。
  8. RandomAccessFile提供了靈活的數據訪問模式,可以快速實現大文件數據部分內容的讀取。
  9. System類提供了3個支持I/O操作的常量
    System.out:對應着顯示器的標準輸出
    System.err:對應着錯誤信息打印,一般此信息不希望給用戶看到
    System.in:對應着標準的鍵盤輸入
  10. BufferedReader可以直接從緩衝區中讀取數據,其提供的readLine()方法可以一次性讀取緩衝區的全部內容。
  11. 使用Stream類可以方便地進行輸入流操作,在讀取時可以先使用hasNextXxx()方法判斷是否有指定類型的數據,在使用nextXxx()方法獲取數據內容。
  12. 造成字符亂碼的根本原因就在於程序編碼與本地編碼的不統一,在開發中建議使用UTF-8編碼。
  13. 對象序列化可以將內存中的對象轉爲二進制數據,但對象所在的類必須實現Serializable接口,一個類中的屬性如果使用transient關鍵字聲明,則此屬性的內容將不會被序列化。
  14. 對象序列化需要通過ObjectOutputStream類完成,而在進行反序列化時,需要將序列化的二進制數據按照格式取出,這時可以使用ObjeectInputStream類讀取。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章