org.pentaho.reporting.libraries.base.util

Class IOUtils

public class IOUtils extends Object

The IOUtils provide some IO related helper methods.

Author: Thomas Morgner.

Method Summary
voidcopyStreams(InputStream in, OutputStream out)
Copies the InputStream into the OutputStream, until the end of the stream has been reached.
voidcopyStreams(InputStream in, OutputStream out, int buffersize)
Copies the InputStream into the OutputStream, until the end of the stream has been reached.
voidcopyWriter(Reader in, Writer out)
Copies the contents of the Reader into the Writer, until the end of the stream has been reached.
voidcopyWriter(Reader in, Writer out, int buffersize)
Copies the contents of the Reader into the Writer, until the end of the stream has been reached.
StringcreateRelativePath(String targetFile, String baseFile)
Creates a relative url by stripping the common parts of the the url.
StringcreateRelativeURL(URL url, URL baseURL)
Creates a relative url by stripping the common parts of the the url.
FilefindFileOnClassPath(String name)
Returns a reference to a file with the specified name that is located somewhere on the classpath.
StringgetAbsolutePath(String targetFile, String baseFile)
Computes the absolute filename for the target file using the baseFile as root directory.
StringgetFileExtension(String file)
Returns the file extension of the given file name.
StringgetFileName(URL url)
Extracts the file name from the URL.
StringgetFileName(String path)
Extracts the last file name from the given pathname.
static IOUtilsgetInstance()
Gets the singleton instance of the utility package.
StringgetPath(String path)
Returns the path-portion of the given path (anything before the last slash or backslash) or an empty string.
booleanisSubDirectory(File base, File child)
Checks, whether the child directory is a subdirectory of the base directory.
voidreadFully(InputStream in, byte[] data, int offset, int length)
Reads the given number of bytes into the target array.
StringstripFileExtension(String file)
Removes the file extension from the given file name.

Method Detail

copyStreams

public void copyStreams(InputStream in, OutputStream out)
Copies the InputStream into the OutputStream, until the end of the stream has been reached. This method uses a buffer of 4096 kbyte.

Parameters: in the inputstream from which to read. out the outputstream where the data is written to.

Throws: java.io.IOException if a IOError occurs.

copyStreams

public void copyStreams(InputStream in, OutputStream out, int buffersize)
Copies the InputStream into the OutputStream, until the end of the stream has been reached.

Parameters: in the inputstream from which to read. out the outputstream where the data is written to. buffersize the buffer size.

Throws: java.io.IOException if a IOError occurs.

copyWriter

public void copyWriter(Reader in, Writer out)
Copies the contents of the Reader into the Writer, until the end of the stream has been reached. This method uses a buffer of 4096 kbyte.

Parameters: in the reader from which to read. out the writer where the data is written to.

Throws: java.io.IOException if a IOError occurs.

copyWriter

public void copyWriter(Reader in, Writer out, int buffersize)
Copies the contents of the Reader into the Writer, until the end of the stream has been reached.

Parameters: in the reader from which to read. out the writer where the data is written to. buffersize the buffer size.

Throws: java.io.IOException if a IOError occurs.

createRelativePath

public String createRelativePath(String targetFile, String baseFile)
Creates a relative url by stripping the common parts of the the url. If the baseFile denotes a directory, it must end with a slash.

Parameters: targetFile the to be stripped url baseFile the base url, to which the url is relative to.

Returns: the relative url, or the url unchanged, if there is no relation beween both URLs.

createRelativeURL

public String createRelativeURL(URL url, URL baseURL)
Creates a relative url by stripping the common parts of the the url. If the base-URL denotes a directory, it must end with a slash.

Parameters: url the to be stripped url baseURL the base url, to which the url is relative to.

Returns: the relative url, or the url unchanged, if there is no relation beween both URLs.

findFileOnClassPath

public File findFileOnClassPath(String name)
Returns a reference to a file with the specified name that is located somewhere on the classpath. The code for this method is an adaptation of code supplied by Dave Postill.

Parameters: name the filename.

Returns: a reference to a file or null if no file could be found.

Throws: SecurityException if access to the system properties or filesystem is forbidden.

UNKNOWN: AccessOfSystemProperties

getAbsolutePath

public String getAbsolutePath(String targetFile, String baseFile)
Computes the absolute filename for the target file using the baseFile as root directory. If the baseFile is null or empty, the target file will be normalized (all navigation elements like ".." are removed).

Parameters: targetFile the target file name. baseFile the base file (can be null).

Returns: the absolute path.

getFileExtension

public String getFileExtension(String file)
Returns the file extension of the given file name. The returned value will contain the dot.

Parameters: file the file name.

Returns: the file extension.

getFileName

public String getFileName(URL url)
Extracts the file name from the URL.

Parameters: url the url.

Returns: the extracted filename.

getFileName

public String getFileName(String path)
Extracts the last file name from the given pathname.

Parameters: path the path name.

Returns: the extracted filename.

getInstance

public static IOUtils getInstance()
Gets the singleton instance of the utility package.

Returns: the singleton instance.

getPath

public String getPath(String path)
Returns the path-portion of the given path (anything before the last slash or backslash) or an empty string.

Parameters: path the path or filename from where to extract the path name.

Returns: the extracted path or a empty string.

isSubDirectory

public boolean isSubDirectory(File base, File child)
Checks, whether the child directory is a subdirectory of the base directory.

Parameters: base the base directory. child the suspected child directory.

Returns: true, if the child is a subdirectory of the base directory.

Throws: java.io.IOException if an IOError occured during the test.

readFully

public void readFully(InputStream in, byte[] data, int offset, int length)
Reads the given number of bytes into the target array. This method does not return until all bytes are read. In case a end-of-stream is reached, the method throws an Exception.

Parameters: in the inputstream from where to read. data the array where to store the data. offset the offset in the array where to store the data. length the number of bytes to be read.

Throws: IOException if an IO error occured or the End of the stream has been reached.

stripFileExtension

public String stripFileExtension(String file)
Removes the file extension from the given file name.

Parameters: file the file name.

Returns: the file name without the file extension.