mirror of
https://github.com/Maschell/JNUSLib.git
synced 2024-07-01 21:36:04 +02:00
Synchronize access to streams.
This commit is contained in:
parent
b0b678c851
commit
31becf6c8b
|
@ -33,6 +33,7 @@ public final class StreamUtils {
|
|||
}
|
||||
|
||||
public static byte[] getBytesFromStream(InputStream in, int size) throws IOException {
|
||||
synchronized (in) {
|
||||
byte[] result = new byte[size];
|
||||
byte[] buffer = new byte[0x8000];
|
||||
int totalRead = 0;
|
||||
|
@ -45,8 +46,10 @@ public final class StreamUtils {
|
|||
in.close();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getChunkFromStream(InputStream inputStream, byte[] output, ByteArrayBuffer overflowbuffer, int BLOCKSIZE) throws IOException {
|
||||
synchronized (inputStream) {
|
||||
int bytesRead = -1;
|
||||
int inBlockBuffer = 0;
|
||||
byte[] overflowbuf = overflowbuffer.getBuffer();
|
||||
|
@ -90,6 +93,7 @@ public final class StreamUtils {
|
|||
} while (inBlockBuffer != BLOCKSIZE);
|
||||
return inBlockBuffer;
|
||||
}
|
||||
}
|
||||
|
||||
public static void saveInputStreamToOutputStream(InputStream inputStream, OutputStream outputStream, long filesize) throws IOException {
|
||||
try {
|
||||
|
@ -102,6 +106,8 @@ public final class StreamUtils {
|
|||
|
||||
public static void saveInputStreamToOutputStreamWithHash(InputStream inputStream, OutputStream outputStream, long filesize, byte[] hash,
|
||||
long expectedSizeForHash) throws IOException, CheckSumWrongException {
|
||||
synchronized (inputStream) {
|
||||
|
||||
MessageDigest sha1 = null;
|
||||
if (hash != null) {
|
||||
try {
|
||||
|
@ -153,8 +159,10 @@ public final class StreamUtils {
|
|||
outputStream.close();
|
||||
inputStream.close();
|
||||
}
|
||||
}
|
||||
|
||||
public static void skipExactly(InputStream in, long offset) throws IOException {
|
||||
synchronized (in) {
|
||||
long n = offset;
|
||||
while (n != 0) {
|
||||
long skipped = in.skip(n);
|
||||
|
@ -164,5 +172,7 @@ public final class StreamUtils {
|
|||
}
|
||||
n -= skipped;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user