這張圖片想必大家也都見過很多次,很詳細的將Java I/O 相關的內容羅列了出來,暫且不要被嚇到,我們邊學邊總結,最後回過頭再來看這張圖片,會有不一樣的感受。
Java的核心庫java.io提供了全面的IO接口。包括:文件讀寫、標準設備輸出等。Java中IO是以流爲基礎進行輸入輸出的,所有數據被串行化寫入輸出流,或者從輸入流讀入。
流
流是一個很形象的概念,當程序需要讀取數據的時候,就會開啓一個通向數據源的流,這個數據源可以是文件,內存,或是網絡連接。類似的,當程序需要寫入數據的時候,就會開啓一個通向目的地的流。這時候你就可以想象數據好像在這其中“流”動一樣。
上述流的概念摘自百度百科(http://baike.baidu.com/item/java.io),博主感覺這個概念解釋的已經蠻清楚的了,再通俗的講,流就是一個“管道”,當你的程序讀取或者是存儲數據的時候,數據在這個管道里流動。
Java流的分類
按流向分(內存和硬盤間的方向):
輸入流:程序可以從中讀取數據的流
輸出流:程序能向其中寫入數據的流
按數據傳輸單位分:
字節流:以字節爲單位傳輸數據的流
字符流:以字符爲單位傳輸數據的流
按功能分:
Java I/O 常用類
JDK所提供的所有流類位於java.io包中,都分別繼承自以下四種抽象流類。
File類
File類提供了許多構造方法,可以根據文件路徑字符串獲取其File實例,然後對該文件下進行文件和目錄進行刪除和創建,以及查找和類型的判斷。
File對象代表磁盤中實際存在的文件和目錄。可以通過如下構造方法創建File對象:
//通過將給定路徑名字符串轉換成抽象路徑名來創建一個新 File 實例 public File(String pathname) //根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例 public File(String parent, String child) //通過給定的父抽象路徑名和子路徑名字符串創建一個新的File實例 public File(File parent, String child) //通過將給定的 file: URI 轉換成一個抽象路徑名來創建一個新的 File 實例 public File(URI uri)
常用的創建File對象方法:
//File.separator是路徑分隔符,UNIX下相當於'/',WINDOWS下相當於'\\' File file = new File("f:" + File.separator + "hexo" + File.separator + "themes"); //也可以直接使用'/'分隔路徑 File file1 = new File("f:/hexo","themes"); File file2 = new File("f:/hexo"); File file3 = new File(file2,"themes"); //file1和file3是同一個文件的File對象
File類提供了很多操作文件和目錄的方法,這裏就不一一列舉,可自行查閱JDK源碼,後面的文章裏某些方法第一次出現時,博主會詳細註釋的~
本文主要是Java I/O 學習的前奏,一些基本的概念,現在看來可能有點抽象,不好理解,慢慢往後看後續文章你就會理解的!