Copy ALL available data from one stream into another with Channel : FileChannel « File Input Output « Java






Copy ALL available data from one stream into another with Channel

      
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

//package org.mbari.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.nio.channels.WritableByteChannel;

/**
 *
 * @author brian
 */
public class IOUtilities {

    /**
     * Copy ALL available data from one stream into another
     * @param in
     * @param out
     * @throws IOException
     */
    public static void copy(InputStream in, OutputStream out) throws IOException {
        ReadableByteChannel source = Channels.newChannel(in);
        WritableByteChannel target = Channels.newChannel(out);

        ByteBuffer buffer = ByteBuffer.allocate(16 * 1024);
        while (source.read(buffer) != -1) {
            buffer.flip(); // Prepare the buffer to be drained
            while (buffer.hasRemaining()) {
                target.write(buffer);
            }
            buffer.clear(); // Empty buffer to get ready for filling
        }

        source.close();
        target.close();

    }

}

   
    
    
    
    
    
  








Related examples in the same category

1.Performs a straightforward copy operation
2.Write to a file using FileChannel.
3.Using FileChannels to Access a File
4.Write to a mapped file.
5.Copy a file using NIO.
6.Get FileChannel from FileOutputStream and FileInputStream
7.Transfer between FileChannel
8.Read bytes from the specified channel, decode them using the specified Charset, and write the resulting characters to the specified writer
9.Demonstrates file locking and simple file read and write operations using java.nio.channels.FileChannel
10.Create a read-only memory-mapped file
11.Create a read-write memory-mapped file
12.Creating a Stream from a Channel
13.Create an inputstream on the channel
14.Create a private (copy-on-write) memory-mapped file.
15.A character output stream that sends output to a printer
16.Write file with FileChannel
17.Read file with FileChannel
18.Copy file with FileChannel