要自定義一個 InputStream 以滿足特定需求,首先需要了解 InputStream 類的基本結構和工作原理
import java.io.IOException;
import java.io.InputStream;
public class CustomInputStream extends InputStream {
// 在這里添加你的實現代碼
}
read()
方法。這里我們以一個簡單的示例為例,該示例中的 InputStream 會無限循環生成一串字符(‘A’ - ‘Z’):@Override
public int read() throws IOException {
// 在這里添加你的實現代碼
// 返回一個 0-255 之間的整數,表示讀取到的字節,或者返回 -1 表示已經讀取到流的末尾
}
private int currentChar = 'A';
@Override
public int read() throws IOException {
if (currentChar > 'Z') {
currentChar = 'A';
}
int result = currentChar++;
return result;
}
可選地,根據需求重寫其他方法,例如 read(byte[] b, int off, int len)
、skip(long n)
、available()
等。
使用自定義的 InputStream:
public static void main(String[] args) {
try (CustomInputStream customInputStream = new CustomInputStream()) {
int data = customInputStream.read();
while (data != -1) {
System.out.print((char) data);
data = customInputStream.read();
}
} catch (IOException e) {
e.printStackTrace();
}
}
這樣,你就創建了一個根據特定需求自定義的 InputStream。請注意,這只是一個簡單的示例,實際應用中可能需要更復雜的邏輯。在創建自定義 InputStream 時,請確保正確處理異常和錯誤情況。