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-tw/n/304684.html
微信掃一掃
支付寶掃一掃