亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中IO流概述

 更新時(shí)間:2022年01月28日 08:55:30   作者:八寶周、  
大家好,本篇文章主要講的是Java中IO流概述,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

1.InputStream 和 OutputStream 繼承結(jié)構(gòu)圖:

在這里插入圖片描述

2.Reader 和 Writer 繼承結(jié)構(gòu)圖:

在這里插入圖片描述

3. 內(nèi)容

3.1 Java 流概述
文件通常是由一連串的字節(jié)或字符構(gòu)成,組成文件的字節(jié)序列稱為字節(jié)流,組成文件的字符
序列稱為字符流。Java 中根據(jù)流的方向可以分為輸入流和輸出流。輸入流是將文件或其它輸入
設(shè)備的數(shù)據(jù)加載到內(nèi)存的過(guò)程;輸出流恰恰相反,是將內(nèi)存中的數(shù)據(jù)保存到文件或其他輸出設(shè)
備,詳見(jiàn)下圖:

在這里插入圖片描述

文件是由字符或字節(jié)構(gòu)成,那么將文件加載到內(nèi)存或再將文件輸出到文件,需要有輸入和輸出
流的支持,那么在 Java 語(yǔ)言中又把輸入和輸出流分為了兩個(gè),字節(jié)輸入和輸出流,字符輸入
和輸出流。
3.2InputStream(字節(jié)輸入流)
InputStream 是字節(jié)輸入流,InputStream 是一個(gè)抽象類,所有繼承了 InputStream 的類都是
字節(jié)輸入流,主要方法:

void close() 
關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。
abstract int read() 
從輸入流讀取下一個(gè)數(shù)據(jù)字節(jié)。
int read(byte[] b) 
從輸入流中讀取一定數(shù)量的字節(jié)并將其存儲(chǔ)在緩沖
區(qū)數(shù)組 b 中。
int read(byte[] b, int off, int len) 
將輸入流中最多 len 個(gè)數(shù)據(jù)字節(jié)讀入字節(jié)數(shù)組。

3.3 OutputStream(字節(jié)輸出流)
所有繼承了 OutputStream 都是字節(jié)輸出流

void close() 
關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。
void flush() 
刷新此輸出流并強(qiáng)制寫(xiě)出所有緩沖的輸出字節(jié)。
void write(byte[] b) 
將 b.length 個(gè)字節(jié)從指定的字節(jié)數(shù)組寫(xiě)入此輸出
流。
void write(byte[] b, int off, int len) 
將指定字節(jié)數(shù)組中從偏移量 off 開(kāi)始的 len 個(gè)字
節(jié)寫(xiě)入此輸出流。
abstract void write(int b)
將指定的字節(jié)寫(xiě)入此輸出流。

3.4 Reader(字符輸入流)

abstract void close() 
關(guān)閉該流。
int read() 
讀取單個(gè)字符。
int read(char[] cbuf) 
將字符讀入數(shù)組。
abstract int read(char[] cbuf, int off, int len) 
將字符讀入數(shù)組的某一部分。

3.5 Writer(字符輸出流)

Writer append(char c) 
將指定字符追加到此 writer。
abstract void close() 
關(guān)閉此流,但要先刷新它。
abstract void flush() 
刷新此流。
void write(char[] cbuf) 
寫(xiě)入字符數(shù)組。
abstract void write(char[] cbuf, int off, int len) 
寫(xiě)入字符數(shù)組的某一部分。
void write(int c) 
寫(xiě)入單個(gè)字符。
void write(String str) 
寫(xiě)入字符串。
void write(String str, int off, int len) 
寫(xiě)入字符串的某一部分。

4.面試題

1.字節(jié)流和字符流的區(qū)別?

字符流和字節(jié)流的使用非常相似,但是實(shí)際上字節(jié)流的操作不會(huì)經(jīng)過(guò)緩沖區(qū)(內(nèi)存)而是直接操作文本本身的,而字符流的操作會(huì)先經(jīng)過(guò)緩沖區(qū)(內(nèi)存)然后通過(guò)緩沖區(qū)再操作文件以字節(jié)為單位輸入輸出數(shù)據(jù),字節(jié)流按照 8 位傳輸以字符為單位輸入輸出數(shù)據(jù),字符流按照 16 位傳

2.什么是 IO 流?

它是一種數(shù)據(jù)的流從源頭流到目的地。比如文件拷貝,輸入流和輸出流都包括了。輸入流從文件中讀取數(shù)據(jù)存儲(chǔ)到進(jìn)程(process)中,輸出流從進(jìn)程中讀取數(shù)據(jù)然后寫(xiě)入到目標(biāo)文件。

3.有哪些可用的 Filter 流?

在 java.io 包中主要由 4 個(gè)可用的 filter Stream。兩個(gè)字節(jié) filter stream,兩個(gè)字符 filter stream. 分別是 FilterInputStream, FilterOutputStream, FilterReader and FilterWriter.這些類是抽象類,不能被實(shí)例化的。

4.Java 中有幾種類型的流?

按照流的方向:輸入流(inputStream)和輸出流(outputStream)按照實(shí)現(xiàn)功能分:節(jié)點(diǎn)流(可以從或向一個(gè)特定的地方(節(jié)點(diǎn))讀寫(xiě)數(shù)據(jù)。如 FileReader)和處理流(是對(duì)一個(gè)已存在的流的連接和封裝,通過(guò)所封裝的流的功能調(diào)用實(shí)現(xiàn)數(shù)據(jù)讀寫(xiě)。如 BufferedReader。處理流的構(gòu)造方法總是要帶一個(gè)其他的流對(duì)象做參數(shù)。一個(gè)流對(duì)象經(jīng)過(guò)其他流的多次包裝,稱為流的鏈接。)按照處理數(shù)據(jù)的單位: 字節(jié)流和字符流。字節(jié)流繼承于 InputStream 和 OutputStream, 字符流繼承于 InputStreamReader 和 OutputStreamWriter 。

5.如何實(shí)現(xiàn)對(duì)象克???

有兩種方式:1). 實(shí)現(xiàn) Cloneable 接口并重寫(xiě) Object 類中的 clone()方法;2). 實(shí)現(xiàn) Serializable 接口,通過(guò)對(duì)象的序列化和反序列化實(shí)現(xiàn)克隆,可以實(shí)現(xiàn)真正的深度克隆

6.什么是緩沖區(qū)?有什么作用?

緩沖區(qū)就是一段特殊的內(nèi)存區(qū)域,很多情況下當(dāng)程序需要頻繁地操作一個(gè)資源(如文件或數(shù)據(jù)庫(kù))則性能會(huì)很低,所以為了提升性能就可以將一部分?jǐn)?shù)據(jù)暫時(shí)讀寫(xiě)到緩存區(qū),以后直接從此區(qū)域中讀寫(xiě)數(shù)據(jù)即可,這樣就可以顯著的提升性能。對(duì)于 Java 字符流的操作都是在緩沖區(qū)操作的,所以如果我們想在字符流操作中主動(dòng)將緩沖區(qū)刷新到文件則可以使用 flush() 方法操作。

總結(jié)

到此這篇關(guān)于Java中IO流概述的文章就介紹到這了,更多相關(guān)Java中IO流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制(踩坑經(jīng)驗(yàn))

    springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制(踩坑經(jīng)驗(yàn))

    這篇文章主要介紹了springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制,本文給大家分享小編實(shí)際開(kāi)發(fā)中的一點(diǎn)踩坑經(jīng)驗(yàn),內(nèi)容簡(jiǎn)單易懂,需要的朋友可以參考下
    2020-07-07
  • 教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目

    教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目

    這篇文章主要介紹了教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目,文中有非常詳細(xì)的代碼示例,對(duì)正在入門(mén)Java的小伙伴們是非常有幫助的喲,需要的朋友可以參考下
    2021-05-05
  • Spring注解解析之@ImportResource

    Spring注解解析之@ImportResource

    之前我們使用spring,最多的還是通過(guò)xml配置文件的方式來(lái)配置spring bean等內(nèi)容,隨著注解的廣泛應(yīng)用和spring4中Java config的引入,xml配置文件方式逐步被替換,但是如果是想要使用xml配置文件方式的話,也可以通過(guò)@ImportResource注解來(lái)實(shí)現(xiàn),下面我們來(lái)一起看下如何使用.
    2021-05-05
  • 關(guān)于spring項(xiàng)目中無(wú)法加載resources下文件問(wèn)題及解決方法

    關(guān)于spring項(xiàng)目中無(wú)法加載resources下文件問(wèn)題及解決方法

    在學(xué)習(xí)Spring過(guò)程中,TestContext框架試圖檢測(cè)一個(gè)默認(rèn)的XML資源位置,再resources下創(chuàng)建了一個(gè)com.example的文件夾,執(zhí)行時(shí),報(bào)錯(cuò),本文給大家介紹spring項(xiàng)目中無(wú)法加載resources下文件,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Java中ThreadLocal的一些理解

    Java中ThreadLocal的一些理解

    這篇文章主要介紹了Java中ThreadLocal的一些理解,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12
  • springboot+mybatis通過(guò)實(shí)體類自動(dòng)生成數(shù)據(jù)庫(kù)表的方法

    springboot+mybatis通過(guò)實(shí)體類自動(dòng)生成數(shù)據(jù)庫(kù)表的方法

    這篇文章主要介紹了springboot+mybatis通過(guò)實(shí)體類自動(dòng)生成數(shù)據(jù)庫(kù)表的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 解決druid監(jiān)控頁(yè)面SQL不顯示的問(wèn)題

    解決druid監(jiān)控頁(yè)面SQL不顯示的問(wèn)題

    這篇文章主要介紹了解決druid監(jiān)控頁(yè)面SQL不顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • IDEA性能優(yōu)化設(shè)置(解決卡頓問(wèn)題)

    IDEA性能優(yōu)化設(shè)置(解決卡頓問(wèn)題)

    在我們?nèi)粘J褂肐DEA進(jìn)行開(kāi)發(fā)時(shí),可能會(huì)遇到許多卡頓的瞬間,本文主要介紹了IDEA性能優(yōu)化設(shè)置,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2023-05-05
  • FreeMarker配置(Configuration)

    FreeMarker配置(Configuration)

    所有與該configuration 對(duì)象關(guān)聯(lián)的模版實(shí)例都就可以通過(guò)獲得to_upper 轉(zhuǎn)換器,company 來(lái)獲得字符串,因此你不需要再一次次的往root 中添加這些變量了。如果你往root 添加同名的變量,那么你新添加的變量將會(huì)覆蓋之前的共享變量。
    2016-04-04
  • 詳解Java無(wú)需解壓直接讀取Zip文件和文件內(nèi)容

    詳解Java無(wú)需解壓直接讀取Zip文件和文件內(nèi)容

    本篇文章主要介紹了詳解Java無(wú)需解壓直接讀取Zip文件和文件內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評(píng)論