Java中的OutputStream類是一個抽象類,它是所有輸出流的父類。OutputStream類提供了一些抽象方法,它們用於將字節寫入輸出流中。在本篇文章中,我們將詳細介紹Java中的OutputStream類,並提供一些代碼示例。
一、OutputStream類的繼承關係
OutputStream類是一個抽象類,它有很多子類,例如:
- ByteArrayOutputStream
- FileOutputStream
- PipedOutputStream
- FilterOutputStream
OutputStream類和其子類提供了不同的功能,可以用於將字節寫入不同的數據源中,例如內存、文件或管道。
二、OutputStream類的常用方法
OutputStream類提供了很多方法,這裡我們介紹其中一些常用的方法:
public void write(int b) throws IOException
將指定的字節寫入此輸出流,b為要寫入的字節。
OutputStream os = new FileOutputStream("example.txt"); os.write(65); //寫入字符A的ASCII碼 os.close(); //關閉輸出流
public void write(byte[] b) throws IOException
將b.length個字節從指定的字節數組寫入此輸出流。
OutputStream os = new FileOutputStream("example.txt"); byte[] b = {'H', 'e', 'l', 'l', 'o', '!', '\n'}; os.write(b); //寫入字節數組 os.close(); //關閉輸出流
public void write(byte[] b, int off, int len) throws IOException
將len個字節從指定的字節數組開始,從偏移量off開始寫入此輸出流。
OutputStream os = new FileOutputStream("example.txt"); byte[] b = {'H', 'e', 'l', 'l', 'o', '!', '\n'}; os.write(b, 1, 4); //寫入字節數組從下標1開始的4個字節,即"ello" os.close(); //關閉輸出流
public void flush() throws IOException
刷新此輸出流並強制任何緩衝的輸出字節被寫出。
OutputStream os = new FileOutputStream("example.txt"); String str = "Hello, World!"; byte[] b = str.getBytes(); os.write(b); os.flush(); //將緩衝的字節全部寫出 os.close(); //關閉輸出流
public void close() throws IOException
關閉此輸出流並釋放與此流相關聯的任何系統資源。
OutputStream os = new FileOutputStream("example.txt"); os.close(); //關閉輸出流
三、OutputStream子類的使用
OutputStream類有很多子類,這裡介紹其中一些常用的子類。
1. FileOutputStream
FileOutputStream類是OutputStream類的一個子類,它用於將字節寫入文件中。
try { OutputStream os = new FileOutputStream("example.txt"); String str = "Hello, World!"; byte[] b = str.getBytes(); os.write(b); os.close(); } catch (IOException e) { e.printStackTrace(); }
2. ByteArrayOutputStream
ByteArrayOutputStream類是OutputStream類的一個子類,它將字節寫入到內存中的byte數組中。
OutputStream os = new ByteArrayOutputStream(); String str = "Hello, World!"; byte[] b = str.getBytes(); os.write(b); byte[] result = ((ByteArrayOutputStream) os).toByteArray(); //獲取寫入的字節 os.close();
3. PipedOutputStream
PipedOutputStream類是OutputStream類的一個子類,它可以與PipedInputStream類配合使用,用於線程之間的通信。
PipedOutputStream pos = new PipedOutputStream(); PipedInputStream pis = new PipedInputStream(pos); new Thread(() -> { try { OutputStream os = new FileOutputStream("example.txt"); byte[] b = pis.readAllBytes(); os.write(b); os.close(); } catch (IOException e) { e.printStackTrace(); } }).start(); String str = "Hello, World!"; byte[] b = str.getBytes(); pos.write(b); pos.close();
總結
本文介紹了Java中的OutputStream類,包括其繼承關係、常用方法和子類的使用。OutputStream類是所有輸出流的父類,它提供了一些抽象方法,用於將字節寫入輸出流中。具體使用時,可以根據需要選擇其子類,例如FileOutputStream、ByteArrayOutputStream和PipedOutputStream。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/304684.html