java基礎-Java IO流(第十六節)

​一、在講之前,我們先看個類,Scanner類,java.util.Scanner 是 Java5 的新特徵,我們可以通過 Scanner 類來獲取用戶的輸入,Scanner類提供了多個構造器,不同的構造器可以接受文件,輸入流,字符串作爲數據源,用於從文件,輸入流字符串中解析數據。

    

ps:代碼很簡單,輸入啥,輸出啥;

 

二、好了,我們先看看整個IO類結構;打鉤的表示以後會經常遇到,要重點學習;

 

 

三.流的概念和作用

       流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱爲流,流的本質是數據傳輸,根據數據傳輸特性將流抽象爲各種類,方便更直觀的進行數據操作。舉個栗子:

       農村的娃,小時候都玩過泥沙吧,用竹筒把沙子從高出排到低處,那時候叫模擬沙漠來着,整個沙子就好比流,裏面的每粒沙子就好比我們要傳輸的數據。理解起來不難;

       再比如,農村的夥伴都知道,山泉水從山上滲透到水井,然後又從水井通過水管把水送到各家各戶。從山上到水井之間的水流我們可以稱之爲輸入流,從水井到各家各戶的水流我們稱之爲輸出流,我們大概可以這麼理解。

四.字節流和字符流

字節流:InputStream和OutputStream是java中可以按照最小字節單位讀取的流,即每次讀寫一個字節,字節流是直接連接到輸入源的流。

字符流:是以字符爲單位進行數據處理的IO流。本質其實就是基於字節流讀取時,去查找指定的碼錶。

字節流與字符流之間的區別:

1.讀寫單位不同:字節流式以字節(8位2進制)爲單位,字符流是以字符爲單位,根據碼錶映射字符,一次可能讀多個字節。

2.處理對象不同:字節流能處理所有類型的數據(如圖片、avi等),而字符流只能處理字符類型的數據。

3.一次讀入或讀出是8位二進制。

4.字符流:一次讀入或讀出是16位二進制。

結論:只要是純文本數據優先使用字符流,除此之外都使用字節流。

五.輸入流字節流InputStream與輸出字節流InputStream

1.InputStream是一個抽象類,是所有輸入字節流的父類。

2.ByteArrayInputStreamStringBufferInputStreamFileInputStream是三中基本的字節了,他們分別從數組、StringBuffer、和本地文件中讀取數據。

3.OutputStream 是所有的輸出字節流的父類,它是一個抽象類。

4.ByteArrayOutputStreamFileOutputStream 是兩種基本的介質流,它們分別向Byte 數組、和本地文件中寫入數據。

常用的節點流

1.文 件 :FileInputStream 、 FileOutputStrean 、FileReader 、FileWriter 文件進行處理的節點流

2.數 組 :ByteArrayInputStream、 ByteArrayOutputStream、 CharArrayReader 、CharArrayWriter 對數組進行處理的節點流(對應的不再是文件,而是內存中的一個數組)

3.字符串 :StringReader、 StringWriter 對字符串進行處理的節點流

常用的處理流

1.緩衝流:BufferedInputStrean 、BufferedOutputStream、 BufferedReader、 BufferedWriter 增加緩衝功能,避免頻繁讀寫硬盤。

2.轉換流:InputStreamReader 、OutputStreamReader實現字節流和字符流之間的轉換。

3.數據流: DataInputStream 、DataOutputStream 等-提供將基礎數據類型寫入到文件中,或者讀取出來。

                   

五、概念需要理解下,這裏重點介紹2個操作,一個是從電腦裏面讀文件信息,並打印出來,一個是從一個文件裏讀取到信息,並輸出到另一個文件裏面去;先看下代碼:

ps:代碼一開始new了2個file文件對象, 並且傳了2個文件路徑,你們在自己敲代碼的時候,切勿直接複製,這2個目錄是我本地電腦的文件目錄,你們自己在電腦新建2個文件,然後把目錄放進去就好了;

其他的內容暫時先理解,後續推出的Android課程系統會重點講

 

   ps:還有技術疑問的歡迎加入:

歡迎加入途碼技術學習交流二羣,羣聊號碼:322394766

微信公衆號:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章