簡體   English   中英

InputStream從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM