forked from openrs2/openrs2
This commit also changes the skipBytes logic slightly to avoid the need to modify the off/len arguments, which is not possible in Kotlin.bzip2
parent
caaa53095d
commit
429867e3af
@ -1,37 +0,0 @@ |
||||
package dev.openrs2.util.io; |
||||
|
||||
import java.io.FilterOutputStream; |
||||
import java.io.IOException; |
||||
import java.io.OutputStream; |
||||
|
||||
public final class SkipOutputStream extends FilterOutputStream { |
||||
private long skipBytes; |
||||
|
||||
public SkipOutputStream(OutputStream out, long skipBytes) { |
||||
super(out); |
||||
this.skipBytes = skipBytes; |
||||
} |
||||
|
||||
@Override |
||||
public void write(int b) throws IOException { |
||||
if (skipBytes == 0) { |
||||
super.write(b); |
||||
} else { |
||||
skipBytes--; |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void write(byte[] b, int off, int len) throws IOException { |
||||
if (len >= skipBytes) { |
||||
off += skipBytes; |
||||
len -= skipBytes; |
||||
skipBytes = 0; |
||||
} else { |
||||
skipBytes -= len; |
||||
return; |
||||
} |
||||
|
||||
super.write(b, off, len); |
||||
} |
||||
} |
@ -0,0 +1,23 @@ |
||||
package dev.openrs2.util.io |
||||
|
||||
import java.io.FilterOutputStream |
||||
import java.io.OutputStream |
||||
|
||||
class SkipOutputStream(out: OutputStream, private var skipBytes: Long) : FilterOutputStream(out) { |
||||
override fun write(b: Int) { |
||||
if (skipBytes == 0L) { |
||||
super.write(b) |
||||
} else { |
||||
skipBytes-- |
||||
} |
||||
} |
||||
|
||||
override fun write(b: ByteArray, off: Int, len: Int) { |
||||
if (len >= skipBytes) { |
||||
super.write(b, off + skipBytes.toInt(), len - skipBytes.toInt()) |
||||
skipBytes = 0 |
||||
} else { |
||||
skipBytes -= len |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue