![](/img/trans.png)
[英]how to read data more than 3GB with Java InputStream from middle offset
[英]InputStream reads data from offset
我想實現一個通用的,可重用的類,該類允許在讀取數據之前在流上設置Offset。 理想情況下,我希望它可以與所有InputStream一起使用,這樣當我從不同的來源獲得它們時,就不必包裝它們中的每一個。
我在SO中找到了關於PositionInputStream的解決方案,但這並不是我想要的。 誰能推薦Offset InputStream的現有實現?
我認為,最后,所有實現最多都將讀取第一個“偏移字節”,
但不會將此顯示給用戶,
然后向用戶返回他希望是讀取字節的內容。
例如,假設您的基礎結構基於裝飾器模式,並且將“包裝的” InputStream保留為成員。
讀取方法的代碼(具有offset和length參數)看起來或多或少像:
public int read(byte[] b,
int off,
int len)
throws IOException {
innerInputStream.read(b,off,len);
}
InputStreamDecorator d = new InputStreamDecorator(new FileInputStream("myfile.txt"));
您還可以使用跳過的包裝實現。
您可以決定有一個CTOR,它的參數為要跳過的字節數,此CTOR將調用內部的skip方法。
例如:
public class InputStreamDecorator extends InputStream {
public InputStreamDecorator(InputStream is, long toSkip) {
this.internalStream = is;
is.skip(toSkip);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.