/*
* Cobertura - http://cobertura.sourceforge.net/
*
* Copyright (C) 2005 Grzegorz Lukasik
* Copyright (C) 2006 John Lewis
* Copyright (C) 2007 Ignat Zapolsky
*
* Note: This file is dual licensed under the GPL and the Apache
* Source License (so that it can be used from both the main
* Cobertura classes and the ant tasks).
*
* Cobertura is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* Cobertura 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
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Cobertura; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
package net.sourceforge.cobertura.util;
import java.io.*;
Helper class with useful I/O operations.
Author: Grzegorz Lukasik
/**
* Helper class with useful I/O operations.
*
* @author Grzegorz Lukasik
*/
public abstract class IOUtil {
Copies bytes from input stream into the output stream. Stops
when the input stream read method returns -1. Does not close
the streams.
Throws: - IOException – If either passed stream will throw IOException.
- NullPointerException – If either passed stream is null.
/**
* Copies bytes from input stream into the output stream. Stops
* when the input stream read method returns -1. Does not close
* the streams.
*
* @throws IOException If either passed stream will throw IOException.
* @throws NullPointerException If either passed stream is null.
*/
public static void copyStream(InputStream in, OutputStream out)
throws IOException {
// NullPointerException is explicity thrown to guarantee expected behaviour
if (in == null || out == null)
throw new NullPointerException();
int el;
byte[] buffer = new byte[1 << 15];
while ((el = in.read(buffer)) != -1) {
out.write(buffer, 0, el);
}
}
Returns an array that contains values read from the
given input stream.
Throws: - NullPointerException – If null stream is passed.
/**
* Returns an array that contains values read from the
* given input stream.
*
* @throws NullPointerException If null stream is passed.
*/
public static byte[] createByteArrayFromInputStream(InputStream in)
throws IOException {
ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
copyStream(in, byteArray);
return byteArray.toByteArray();
}
Moves a file from one location to other.
Throws: - IOException – If IO exception occur during moving.
- NullPointerException – If either passed file is null.
/**
* Moves a file from one location to other.
*
* @throws IOException If IO exception occur during moving.
* @throws NullPointerException If either passed file is null.
*/
public static void moveFile(File sourceFile, File destinationFile)
throws IOException {
if (destinationFile.exists()) {
destinationFile.delete();
}
// Move file using File method if possible
boolean succesfulMove = sourceFile.renameTo(destinationFile);
if (succesfulMove)
return;
// Copy file from source to destination
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(sourceFile);
out = new FileOutputStream(destinationFile);
copyStream(in, out);
} finally {
in = closeInputStream(in);
out = closeOutputStream(out);
}
// Remove source file
sourceFile.delete();
}
Closes an input stream.
Params: - in – The stream to close.
Returns: null unless an exception was thrown while closing, else
returns the stream
/**
* Closes an input stream.
*
* @param in The stream to close.
*
* @return null unless an exception was thrown while closing, else
* returns the stream
*/
public static InputStream closeInputStream(InputStream in) {
if (in != null) {
try {
in.close();
in = null;
} catch (IOException e) {
System.err.println("Cobertura: Error closing input stream.");
e.printStackTrace();
}
}
return in;
}
Closes an output stream.
Params: - out – The stream to close.
Returns: null unless an exception was thrown while closing, else
returns the stream.
/**
* Closes an output stream.
*
* @param out The stream to close.
*
* @return null unless an exception was thrown while closing, else
* returns the stream.
*/
public static OutputStream closeOutputStream(OutputStream out) {
if (out != null) {
try {
out.close();
out = null;
} catch (IOException e) {
System.err.println("Cobertura: Error closing output stream.");
e.printStackTrace();
}
}
return out;
}
public static PrintWriter getPrintWriter(File file)
throws UnsupportedEncodingException, FileNotFoundException {
Writer osWriter = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file), "UTF-8"), 16384);
PrintWriter pw = new PrintWriter(osWriter, false);
return pw;
}
}