您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“java流與IO流有什么不同”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
流(Stream):
流代表著任何有能力產(chǎn)出數(shù)據(jù)的源或者也能力接收數(shù)據(jù)的源對象,作用是為了將數(shù)據(jù)源跟目的地建立一個輸送的通道。
流中比較重要的就是IO流了。下面我們先講一講IO流
IO流根據(jù)方向分為輸入流與輸出流,這個很好理解,輸入進來的叫輸入流,反之,向外輸出的,叫輸出流。
根據(jù)形式:分為字符流,和字節(jié)流。這個也不難,字節(jié)流是基本就是無法用字符表示的,圖片、視頻、音頻等,而字符流,一般可以用字符表示的,txt,xlsx,java,html等。
根據(jù)功能不同,可分為:節(jié)點流,處理流。節(jié)點流是直接操作文件,處理流是連接已經(jīng)存在的流。
下圖是IO流的四大流:
四大流都是抽象類,不能直接創(chuàng)建對象,需要去new一個他的實現(xiàn)類。本文講解的一般都是概念性的內(nèi)容,如果有需要具體代碼的親們,可以留言找我,下面我會放一些經(jīng)常會問的關(guān)于IO流的初級面試題(高級的后續(xù)我會寫)
1.流按照實現(xiàn)功能分為哪兩種,分別舉例說明:
答:節(jié)點流,處理流
節(jié)點流:OutputStream
處理流:OutputStreamWriter
2.BufferedReader屬于哪種流,它主要是用來做什么的,它里面有那些經(jīng)典的方法
答:屬于處理流中的緩沖流,可以將讀取的內(nèi)容存在內(nèi)存里面,有readLine()方法。
3.如果我要對字節(jié)流進行大量的從硬盤讀取,要用那個流,為什么?
答:BufferedInputStream 使用緩沖流能夠減少對硬盤的損傷.
4.如果我要打印出不同類型的數(shù)據(jù)到數(shù)據(jù)源,那么最適合的流是那個流,為什么?
答:Printwriter 可以打印各種數(shù)據(jù)類型.
5.把一個對象寫入數(shù)據(jù)源或者從一個數(shù)據(jù)源讀出來,用哪兩個流?
答:ObjectInputStream ObjectOutputStream.
6.流一般需要不需要關(guān)閉,如果關(guān)閉的話在用什么方法,一般要在那個代碼塊里面關(guān)閉比較好,處理流是怎么關(guān)閉的,如果有多個流互相調(diào)用傳入是怎么關(guān)閉的?
答:流一旦打開就必須關(guān)閉,使用close方法,放入finally語句塊(finally 語句一定會執(zhí)行),調(diào)用的處理流就關(guān)閉處理流,多個流互相調(diào)用只關(guān)閉最外層的流.
7.Java中的所有的流可以分為幾大類,它們的名字是什么,各代表什么?
答:字節(jié)輸入流 InputStream
字節(jié)輸出流 OutputStream
字符輸入流 Reader
字符輸出流 Writer
8.用什么把對象動態(tài)的寫入磁盤中,寫入要實現(xiàn)什么接口。
答:ObjectInputStream,需要實現(xiàn)Serializable接口。
“java流與IO流有什么不同”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。