new(i:Input)
read():{file:String, data:Bytes}
readData(o:Output, ?bufsize:Int):Int
readHeader():Header