summaryrefslogtreecommitdiff
path: root/src/main/java/ch/hiddenalpha/unspecifiedgarbage/stream/StreamUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/ch/hiddenalpha/unspecifiedgarbage/stream/StreamUtils.java')
-rw-r--r--src/main/java/ch/hiddenalpha/unspecifiedgarbage/stream/StreamUtils.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/ch/hiddenalpha/unspecifiedgarbage/stream/StreamUtils.java b/src/main/java/ch/hiddenalpha/unspecifiedgarbage/stream/StreamUtils.java
index 889b3f1..bebe970 100644
--- a/src/main/java/ch/hiddenalpha/unspecifiedgarbage/stream/StreamUtils.java
+++ b/src/main/java/ch/hiddenalpha/unspecifiedgarbage/stream/StreamUtils.java
@@ -25,6 +25,21 @@ public class StreamUtils {
return totalBytes;
}
+ public static Runnable newCopyTask(java.io.InputStream src, java.io.OutputStream dst, boolean doCloseDst){
+ return ()->{
+ try{
+ for( byte[] buf = new byte[8291] ;; ){
+ int readLen = src.read(buf, 0, buf.length);
+ if( readLen == -1 ) break;
+ dst.write(buf, 0, readLen);
+ }
+ if( doCloseDst ) dst.close();
+ }catch( java.io.IOException ex ){
+ throw new RuntimeException(ex);
+ }
+ };
+ }
+
public static <SRC,DST> java.util.Iterator<DST> map( java.util.Iterator<SRC> src , java.util.function.Function<SRC,DST> mapper ) {
return new java.util.Iterator<DST>() {
@Override public boolean hasNext() { return src.hasNext(); }