JavaSE(十七)——IO流之字节流
文章目錄
- 1. 概述
- 2. FileOutputStream寫出數據
- 3. FileInputStream讀取數據
- 4. 字節流復制文本文件
- 5. 字節流復制MP3
- 6. 高效的字節輸入輸出流
1. 概述
- IO流用來處理設備之間的數據傳輸, Java對數據的操作是通過流的方式。
- IO流的分類:
(1): 按照流向進行劃分
輸入流
輸出流
(2): 按照操作的數據類型進行劃分
字節流 :字節輸入流 InputStream (讀) 字節輸出流 OutputStream (寫)
字符流 :字符輸入流 Reader(讀) 字符輸出流 Writer (寫)
注:字節流可以讀寫任何類型的文件;字符流只能讀寫文本文件
由這四個類派生出來的子類名稱都是以其父類名作為子類名的后綴。
如:InputStream的子類FileInputStream。
如:Reader的子類FileReader。
2. FileOutputStream寫出數據
-
構造方法
FileOutputStream(File file)
FileOutputStream(String name) -
FileOutputStream的三個write()方法
public void write(int b):一次寫入一個字節 超過一個字節 砍掉前面的字節
public void write(byte[] b):一次寫入一個字節數組
public void write(byte[] b,int off,int len):一次寫入一個字節數組的一部分 -
windows下的換行符只用是 \r\n
Linux \n
Mac \r -
FileOutputStream(File file, boolean append)
創建一個向指定 File 對象表示的文件中寫入數據的文件輸出流。
FileOutputStream(String name, boolean append)
創建一個向具有指定 name 的文件中寫入數據的輸出文件流。 -
案例代碼
-
運行結果
3. FileInputStream讀取數據
- 構造方法
FileInputStream(File file)
FileInputStream(String name) - FileInputStream的三個read()方法
public void read(int b):一次讀取一個字節,返回的是這個字節數據,如果讀取不到,返回 -1,可以拿-1 判斷文件是否讀取完
public void read(byte[] b):一次讀取一個字節數組
public void read(byte[] b,int off,int len):一次讀取一個字節數組的一部分 - 案例代碼
- 運行結果
4. 字節流復制文本文件
- 采用文件輸入輸入流進行文件的復制,一次讀一個字節寫一個字節來復制一個文本文件。
- 步驟分析:
(1)創建字節輸入流對象和字節輸出流對象
(2)頻繁的讀寫操作
(3)釋放資源 - 案例代碼
- 運行結果
5. 字節流復制MP3
-
一次讀寫一個字節來復制音樂
-
案例代碼
-
運行結果
-
一次讀寫一個字節數組來復制音樂
-
案例代碼
-
運行結果
可以看出明顯比一次讀取一個字節來復制快得多
6. 高效的字節輸入輸出流
- BufferedInputStream(InputStream in)
創建一個 BufferedInputStream 并保存其參數,即輸入流 in,以便將來使用。
BufferedInputStream(InputStream in, int size)
創建具有指定緩沖區大小的 BufferedInputStream 并保存其參數,即輸入流 in,以便將來使用。
- BufferedOutputStream(OutputStream out)
創建一個新的緩沖輸出流,以將數據寫入指定的底層輸出流
-
案例代碼
-
運行結果
總結
以上是生活随笔為你收集整理的JavaSE(十七)——IO流之字节流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaSE(十六)——反射
- 下一篇: JavaSE(十八)——IO流之字符流