Index: impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/asset/FileAsset.java
===================================================================
--- impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/asset/FileAsset.java	(revision 3827)
+++ impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/asset/FileAsset.java	(working copy)
@@ -16,6 +16,7 @@
  */
 package org.jboss.shrinkwrap.impl.base.asset;
 
+import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -66,7 +67,7 @@
    {
       try
       {
-         return new FileInputStream(file);
+         return new BufferedInputStream(new FileInputStream(file), 8192);
       }
       catch (FileNotFoundException e)
       {
Index: impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImpl.java
===================================================================
--- impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImpl.java	(revision 3827)
+++ impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImpl.java	(working copy)
@@ -95,8 +95,8 @@
             }
             String entryName = entry.getName();
 
-            ByteArrayOutputStream output = new ByteArrayOutputStream();
-            byte[] content = new byte[1024];
+            ByteArrayOutputStream output = new ByteArrayOutputStream(8192);
+            byte[] content = new byte[4096];
             int readBytes;
             while( (readBytes = stream.read(content, 0, content.length)) != -1)
             {
Index: impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/io/IOUtil.java
===================================================================
--- impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/io/IOUtil.java	(revision 3827)
+++ impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/io/IOUtil.java	(working copy)
@@ -82,13 +82,12 @@
       Validate.notNull(in, "stream must be specified");
 
       // Get content as an array of bytes
-      final ByteArrayOutputStream out = new ByteArrayOutputStream();
-      final int len = 1024;
+      final ByteArrayOutputStream out = new ByteArrayOutputStream(8192);
+      final int len = 4096;
       final byte[] buffer = new byte[len];
       int read = 0;
       try
       {
-
          while (((read = in.read(buffer)) != -1))
          {
             out.write(buffer, 0, read);
@@ -126,7 +125,7 @@
     */
    public static void copy(InputStream input, OutputStream output)
    {
-      final byte[] buffer = new byte[1024];
+      final byte[] buffer = new byte[4096];
       int read = 0;
       try
       {
@@ -134,6 +133,8 @@
          {
             output.write(buffer, 0, read);
          }
+
+         output.flush();
       }
       catch (final IOException ioe)
       {
Index: impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExportDelegate.java
===================================================================
--- impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExportDelegate.java	(revision 3827)
+++ impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExportDelegate.java	(working copy)
@@ -54,7 +54,7 @@
    /**
     * OutputStream to hold the output contents
     */
-   private final ByteArrayOutputStream output = new ByteArrayOutputStream();
+   private final ByteArrayOutputStream output = new ByteArrayOutputStream(8192);
 
    /**
     * ZipOutputStream used to write the zip entries
Index: impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ExplodedExporterDelegate.java
===================================================================
--- impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ExplodedExporterDelegate.java	(revision 3827)
+++ impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ExplodedExporterDelegate.java	(working copy)
@@ -16,6 +16,7 @@
  */
 package org.jboss.shrinkwrap.impl.base.exporter;
 
+import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
@@ -116,9 +117,10 @@
          // Get the asset streams
          final InputStream assetInputStream = asset.openStream();
          final FileOutputStream assetFileOutputStream = new FileOutputStream(assetFile);
+         final BufferedOutputStream assetBufferedOutputStream = new BufferedOutputStream(assetFileOutputStream, 8192);
 
          // Write contents
-         IOUtil.copyWithClose(assetInputStream, assetFileOutputStream);
+         IOUtil.copyWithClose(assetInputStream, assetBufferedOutputStream);
       }
       catch (Throwable t)
       {
