您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)java IO流常用操作之字節(jié)流和字符流的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
一.主要IO流的分類
通過圖可知java 中主要IO流根據(jù)處理數(shù)據(jù)類型的不同分為字符流和字節(jié)流,根據(jù)數(shù)據(jù)流向不同分為輸入流和輸出流。
二. 使用場景
1.考慮最原始的數(shù)據(jù)格式是什么:
場景一. 原始數(shù)據(jù)是二進(jìn)制或者是純文本,使用方式如下:
(1). 二進(jìn)制格式(只要不能確定是純文本的):InputStream,OutputStream及其子類(字節(jié)流)。
(2). 純文本格式(含純英文與漢字或其他編碼方式):Reader,Writer及其子類(字符流)。
場景二:IO數(shù)據(jù)流通道:
(1). 輸入:Reader,InputStream類型的子類。
(2). 輸出:Writer,OutputStream類型的子類。
場景三:IO流轉(zhuǎn)換:
(1). 字節(jié)到字符:InputStreamReader
(2). 字符到字節(jié):OutputStreamWriter
場景四:數(shù)據(jù)來源流向:
(1). 文件:FileInputStream,FileOutputStream ; FileReader,FileWriter
(2). byte[]: ByteArrayInputStream, ByteArrayOutputStream
(3).Char[]:CharArrayReader,CharArrayWriter
(4).String:StringBufferInputStream,StringBufferOutputStream;StringReader,StringWriter
(5).網(wǎng)絡(luò)數(shù)據(jù)流:InputStream,OutputStream;Reader,Writer
場景五:緩沖:(要注意readLine()是否有定義,有什么比read(),writer()更特殊的輸入或輸出方法)
要緩沖:BufferedInputStream, BufferedOutputStream; BufferedReader, BufferedWriter
場景六:格式化輸出:
格式化輸出:PrintStream, PrintWriter
三.主要字節(jié)流常用方法
(1).InputStream字節(jié)流
// 從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié) abstract int read() // 從輸入流中讀取一定數(shù)量的字節(jié),并將其存儲在緩沖區(qū)數(shù)組 b中 int read(byte[] b) // 將輸入流中最多 len 個(gè)數(shù)據(jù)字節(jié)讀入 byte 數(shù)組 int read(byte[] b, int off, int len) // 跳過和丟棄此輸入流中數(shù)據(jù)的 n個(gè)字節(jié) long skip(long n) // 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源 void close()
(2).OutputStream字節(jié)流
// 將 b.length 個(gè)字節(jié)從指定的 byte 數(shù)組寫入此輸出流 void write(byte[] b) // 將指定 byte 數(shù)組中從偏移量 off 開始的 len 個(gè)字節(jié)寫入此輸出流 void write(byte[] b, int off, int len) // 將指定的字節(jié)寫入此輸出流 abstract void write(int b) // 關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源 void close() // 刷新此輸出流并強(qiáng)制寫出所有緩沖的輸出字節(jié) void flush()
四.主要字符流常用方法
(1). Reader
// 讀取單個(gè)字符 int read() // 將字符讀入數(shù)組 int read(char[] cbuf) // 將字符讀入數(shù)組的某一部分 abstract int read(char[] cbuf, int off, int len) // 跳過字符 long skip(long n) // 關(guān)閉該流并釋放與之關(guān)聯(lián)的所有資源 abstract void close()
(2). Writer
// 寫入字符數(shù)組 void write(char[] cbuf) // 寫入字符數(shù)組的某一部分 abstract void write(char[] cbuf, int off, int len) // 寫入單個(gè)字符 void write(int c) // 寫入字符串 void write(String str) // 寫入字符串的某一部分 void write(String str, int off, int len) // 將指定字符添加到此 writer Writer append(char c) // 將指定字符序列添加到此 writer Writer append(CharSequence csq) // 將指定字符序列的子序列添加到此 writer.Appendable Writer append(CharSequence csq, int start, int end) // 關(guān)閉此流,但要先刷新它 abstract void close() // 刷新該流的緩沖 abstract void flush()
關(guān)于“java IO流常用操作之字節(jié)流和字符流的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。