свой класс (с фиксированным размером буфера), затем, если оффсет подходит к концу, считать новый буфер (не забыв аккуратно разрулить данные из потенциально нескольких буферов)
пример:
class LocalInputStream(outer: InputStream, data: Array[Int], var offset: Int)
при создании data заполняется из outer (outer.read(data)), offset == 0
допустим, я хочу прочитать след байт
это будет примерно
def readByte(): Byte = {
if (offset == LocalInputStream.CHUNK_SIZE) {
outer.read(data)
offset = 0
}
val res = data(offset)
offset += 1
res
}
нужные мне методы наполовину имеют сигнатуру из DataInputStream, наполовину свое
с, скажем, def read(b: Array[Byte]): Unit достаточно много геморра, если b.length » CHUNK_SIZE
вопрос — есть ли готовая либа под такие хотелки ?
очень много крайних случаев, легко тупануть, не просто сделать класс тредсейфным, поэтому хотелось бы заюзать что готовое
я себе такую штуку сделал сам за 15 минут. вот может как-то поможет тебе: https://dumpz.org/2705533/
Обсуждают сегодня