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