blob: b0d600dec5b0ef0be68883325d43e36eacec790c [file] [log] [blame]
/*******************************************************************************
* Copyright (C) 2007 The University of Manchester
*
* Modifications to the initial code base are copyright of their
* respective authors, or their employers as appropriate.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
******************************************************************************/
package net.sf.taverna.t2.lang.io;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.log4j.Logger;
/**
* Copies an InputStream to an OutputStream.
*
* @author Tom Oinn
*/
public class StreamCopier extends Thread {
private static Logger logger = Logger
.getLogger(StreamCopier.class);
InputStream is;
OutputStream os;
/**
* Create a new StreamCopier which will, when started, copy the specified
* InputStream to the specified OutputStream
*/
public StreamCopier(InputStream is, OutputStream os) {
super("StreamCopier");
this.is = is;
this.os = os;
}
/**
* Start copying the stream, exits when the InputStream runs out of data
*/
public void run() {
try {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = is.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.flush();
os.close();
} catch (Exception ex) {
logger.error("Could not copy stream", ex);
}
}
}