「014期」JavaSE面試題(十四):基本IO流

2020-12-22 酷扯兒

本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫

開篇介紹

大家好,我是Java面試題庫提褲姐,今天這篇是JavaSE系列的第十四篇,主要總結了Java中的IO流的問題,IO流分為兩篇來講,這篇是第一篇,主要是基本IO流,第二篇主要為網絡IO流,在後續,會沿著第一篇開篇的知識線路一直總結下去,做到日更!如果我能做到百日百更,希望你也可以跟著百日百刷,一百天養成一個好習慣。

Q:

什麼是IO流?

它是一種數據的流從源頭流到目的地。比如文件拷貝,輸入流和輸出流都包括了。輸入流從文件中讀取數據存儲到進程(process)中,輸出流從進程中讀取數據然後寫入到目標文件。

Q:

Java中有幾種類型的流?

按照流的方向

輸入流(inputStream輸出流(outputStream)。按照實現功能分

節點流(可以從或向一個特定的地方(節點)讀寫數據。如FileReader)處理流(是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現數據讀寫。如BufferedReader。處理流的構造方法總是要帶一個其他的流對象做參數。一個流對象經過其他流的多次包裝,稱為流的連結。)按照處理數據的單位

字節流字符流字節流繼承於InputStream和OutputStream

字符流繼承於InputStreamReader和OutputStreamWriter

字符流.png

字節流.png

Q:

字節流和字符流的區別?

字節流在JDK1.0中就被引進了,用於操作包含ASCII字符的文件。JAVA也支持其他的字符如Unicode,為了讀取包含Unicode字符的文件,JAVA語言設計者在JDK1.1中引入了字符流。ASCII作為Unicode的子集,對於英語字符的文件,可以可以使用字節流也可以使用字符流。

Q:

字節流有了為什麼還要有字符流?

字符流是由 Java 虛擬機將字節轉換得到的,問題就出在這個過程還算是非常耗時,並且,如果我們不知道編碼類型就很容易出現亂碼問題。所以, I/O 流就乾脆提供了一個直接操作字符的接口,方便我們平時對字符進行流操作。如果音頻文件、圖片等媒體文件用字節流比較好,如果涉及到字符的話使用字符流比較好。

Q:

FileInputStream和FileOutputStream是什麼?

這是在拷貝文件操作的時候,經常用到的兩個類。在處理小文件的時候,它們性能表現還不錯,在大文件的時候,最好使用BufferedInputStream (或 BufferedReader) 和 BufferedOutputStream (或 BufferedWriter)

Q:

Files的常用方法都有哪些?

Files. size():查看文件個數。Files. read():讀取文件。Files. write():寫入文件。Files. exists():檢測文件路徑是否存在。Files. createFile():創建文件。Files. createDirectory():創建文件夾。Files. delete():刪除一個文件或目錄。Files. copy():複製文件。Files. move():移動文件。

Q:

什麼是 java 序列化,如何實現 java 序列化?

序列化:

是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化後的對象進行讀寫操作,也可將流化後的對象傳輸於網絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發的問題。

序列化的實現:

將需要被序列化的類實現

Serializable

接口 ,該接口沒有需要 實現的方法,implements Serializable只是為了標註該對象是可被序列化的,然後使用一個輸出流(如:FileOutputStream)來構造一個 ObjectOutputStream(對象流)對象,接著,使用 ObjectOutputStream 對象的 writeObject(Object obj)方法就可以將參數為 obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。

Q:

如何將一個 java 對象序列化到文件裡?

在 java 中能夠被序列化的類必須先實現

Serializable

接口,該接口沒有任何抽象方法只是起到一個標記作用。

Q:

如何實現對象克隆?

兩種方式:

實現Cloneable 接口並重寫 Object 類中的 clone()方法;實現Serializable接口,通過對象的序列化和反序列化實現克隆,可以實現真正的深度克隆。注意:基於序列化和反序列化實現的克隆不僅僅是深度克隆,更重要的是通過泛型限定,可以檢查出要克隆的對象是否支持序列化,這項檢查是編譯器完成的,不是在運行時拋出異常,這種是方案明顯優於使用 Object 類的clone方法克隆對象。讓問題在編譯的時候暴露出來總是好過把問題留到運行時。

相關焦點

  • 「002期」JavaSE面試題(二):基本數據類型與訪問修飾符
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇導讀大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第二篇,
  • 「009期」JavaSE面試題(九):集合之Set
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,今天這篇是面試系列的第九篇,主要總結了
  • 「005期」JavaSE面試題(五):String類
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,本篇文章是面試系列文章的第五篇,主要介紹了
  • 「011期」JavaSE面試題(十一):多線程(1)
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第十一篇
  • JAVA IO Stream流總結
    4.2 字節輸出流【OutputStream】java.io.OutputStream 抽象類是表示字節輸出流的所有類的超類,將指定的字節信息寫出到目的地。它定義了字節輸出流的基本共性功能方法。l public void close() :關閉此輸出流並釋放與此流相關聯的任何系統資源。
  • 刷題兩個月,從入門到字節跳動offer,這是我的模板|GitHub1.2k星
    第三步,劍指offer劍指offer基本上是大部分公司的出題源頭,刷題面試中基本會遇到現題或者變形題,刷完這三部分,大部分國內公司的面試題應該都沒有問題了。另外,作者還溫馨提示:刷題時間要合理分配。分成了基本語法、常用庫以及刷題注意點這三部分。如果你對go語言還不是很了解,直接送上「go語言聖經」在線網頁版供你參考。常用庫不必細說了,附帶代碼和解釋說明,很完整。
  • Java面試題之IO流是做什麼的?流的分類?常用的流有哪些?
    2) 根據流數據的格式來分:字節流:處理聲音或者圖片等二進位的數據的流,比如 InputStream;字符流:處理文本數據(如txt文件)的流,比如 InputStreamReader ;3) 根據流數據的包裝過程來分:節點流:又稱為低級流,特點是:數據源明確,真實負責讀寫數據的流。
  • 「人類無盡的追求,就像薛西弗斯和他的石頭一樣.」Review of Dimitris Papaioannou
    然後又再一次地重新開始一樣的任務,一再地渴求著新的開始。」「而這樣的追求,就像薛西弗斯和他的石頭一樣。」創作導演 迪米特裡.帕派約安努 說。全世界各地媒體對他出現頻率最高的評論,形容他是 「如夢如幻」「詩句般的夢境」的偉大傑作等。「當夢境和現實的界線薄如紙的時候,我再讓你從夢走到惡夢裡,你也不會察覺的。
  • 2020廣東省考面試模擬題:我國發展將長期處於重要戰略機遇期
    2020廣東省考面試模擬題:我國發展將長期處於重要戰略機遇期 2020-03-12 18:02:45| 來源:廣東中公教育
  • 2020國考面試模擬題:我國發展將長期處於重要戰略機遇期
    國家公務員考試題庫:國家公務員網提供2020國考結構化面試模擬題每日一練、國家公務員面試題庫、歷年國家公務員面試題及答案,本文整理2020國考面試模擬題:我國發展將長期處於重要戰略機遇期。國家公務員面試模擬題2019年中央經濟工作會議指出,我國發展仍處於並將長期處於重要戰略機遇期。
  • 2021國家公務員面試模擬題:我國發展將長期處於重要戰略機遇期
    2021國家公務員面試模擬題:我國發展將長期處於重要戰略機遇期 2020-12-03 09:24:53| 中公教育 做為公考最重要的一關「面試」 而言,並非一日能成。
  • 日語學習 | 指示代詞「は」和「が」的基本用法
    對於很多日語學習者來說,「は」和「が」這兩個助詞的用法常常會讓人感到頭疼。其實,「は」和「が」這兩個助詞有各自的基本功能,在句子當中發揮的作用也不同。準確的理解這兩個助詞的區別對於日語學習者來說很重要。一、「は」和「が」的基本用法。1、首次出現在話題中,或是無法明確的事物用「が」。2、已經在話題中出現,或是讀者可以明確的事物用「は」。
  • 對戰動作手遊《少女魂.io》公開 角色巨大化掃全場
    對戰動作手遊《少女魂.io》公開 角色巨大化掃全場 來源:www.18183.com作者:阿魚覺得海星時間:2020-06-04 分享到: 日本 Intense 宣布,預定於 2020 年秋天在手機平臺上推出一款線上對戰動作 RPG《少女魂.io》與玩家們見面。
  • 「HR和求職者的福利」網際網路行業面試題
    今天和大家分享一些整理的網際網路行業面試題,適合HR的提問,也有相關的解答,僅供參考~Q1:自我介紹Tips:以三個關鍵詞總結展開,控制在1-2分鐘左右。①自我介紹最好以自己特點與崗位所需特點匹配為好,可以讓面試官清楚地知道你是符合這個崗位②每個關鍵詞最好有典型事例佐證,事例不宜過多,最好遵循STAR原則。
  • 「國家公務員考試總是不進面」國家公務員面試比例是什麼意思
    「國家公務員考試總是不進面」國家公務員面試比例是什麼意思由國家公務員考試網考試快訊欄目由提供,更多關於國考面試,國家公務員考試網,國家公務員考試考試快訊的內容,請關注國家公務員考試網/廣東公務員考試網!   2021國家公務員考試面試名單已發布!
  • Java之IO流的簡單介紹
    各位小夥伴們大家好,在之前的文章中小編簡單介紹了過濾器Java之FileFilter過濾器的使用與及原理的簡單介紹,「創作開運禮」Java之FileNameFilter過濾器的使用,這次小編要簡單介紹一下IO流,大家可以先看這張圖。
  • 「國家公務員報名入口網官網」遴選公務員面試真題及答案
    「國家公務員報名入口網官網」遴選公務員面試真題及答案由國家公務員考試網考試快訊欄目由提供,更多關於國考面試,國家公務員考試網,國家公務員考試考試快訊的內容,請關注國家公務員考試網/廣東公務員考試網!
  • 日語語法:「たら」「と」「ば」「なら」的一道搭配題
    1.關於と、ば、なら、たら 這是道搭配題(1)この薬を飲むと   (2)この薬を飲めば(3)この薬を飲むなら  (4)この薬を飲んだらA食前がいいですよ    Bいつも眠くなります C治るでしょう。     Dどうですか居然一個都沒對.反而被搞得頭昏腦漲的。
  • 書單推薦丨致書荒的你「2019新完結口碑文第四十四期」
    2019第三十五期前三名作品:「戳連結,投票」《你老婆掉了》六盲星、《十八味的甜》茴笙、《跟你說句悄悄話》翹搖2019第三十六期前三名作品:「戳連結,投票」《一生一世,江南老》墨寶非寶、《戒不掉的煙》溫昶、《蜜寵嬌娘》李息隱2019第三十七期前三名作品:「戳連結,投票」《玫瑰撻》棲見、《我就是大佬死了的白月光》蔣牧童、《枕邊有你》三水小草2019第三十八期前三名作品:「戳連結,投票」《戀戀浮城》蓬萊客、《初吻日記》鹿靈、長安小飯館》櫻桃糕2019第三十九期前三名作品:「戳連結,投票」《百年好合》咬春餅
  • 《面試攻略》別被對方問倒了!一篇文破解最常見的3大面試問題
    面試問題百百種!其中又以「為何離職」、「你的缺點是什麼」、「為何選擇跨產業、非原本職務」幾乎是面試官必問的三大挑戰,要如何回答才不會演變成誤踩禁忌的災難呢?一起跟小編來看看三大問題要如何化解!一、面試官:「你為什麼離開上一份工作?」