- java.lang.Object
-
- util.io.IOUtilities
-
public class IOUtilities extends java.lang.Object
A utilities class for I/O stuff. It constists of serveral static methods that perform some usefull things.- Author:
- Til Schneider, www.murfman.de
-
-
Constructor Summary
Constructors Constructor Description IOUtilities()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
append(java.lang.StringBuffer buffer, int number, int minChars)
Appends an integer to a StringBuffer.static java.lang.String
checkForRelativePath(java.lang.String path)
Check given path if it is a relative path of the TV-Browser settings home directory.static void
clear(java.lang.StringBuffer buffer)
Clears an StringBufferstatic void
close(java.io.Closeable toClose)
Closes the given closeable.static void
copy(java.io.File[] src, java.io.File targetDir)
Copies files given in source to the target directory.static void
copy(java.io.File[] src, java.io.File targetDir, boolean onlyNew)
Copies files given in source to the target directory.static void
copy(java.io.File src, java.io.File target)
Copies a file.static void
copy(java.io.File src, java.io.File target, boolean onlyNew)
Copies a file.static java.lang.Integer[]
decodeSingleFieldValueToMultipleEpisodeNumers(int fieldValue)
Decode the given value into an array of episode numbers.static java.lang.String
decodeSingleFieldValueToMultipleEpisodeString(int fieldValue)
Decode the given value into a String of episode numbers.static void
deleteDirectory(java.io.File dir)
Deletes a directory with all its files and subdirectories.static void
download(java.net.URL url, java.io.File targetFile)
Downloads a file from a HTTP server.static boolean
download(java.net.URL url, java.io.File targetFile, int timeout)
Downloads a file from a HTTP server.static int
encodeMultipleEpisodeNumersToSingleFieldValue(int[] episodeNumbers)
Convert an array with episode numbers into a single integer value.static byte[]
getBytesFromFile(java.io.File file)
Reads all Bytes from a File into an byte arraystatic java.awt.GraphicsConfiguration
getGraphicsConfigurationForFrame()
Get the graphics configuration which is currently the best to use for new windows.static int
getMinutesAfterMidnight()
Gets the number of minutes since midnightstatic int
getSecondsAfterMidnight()
Gets the number of seconds since midnightstatic java.io.InputStream
getStream(java.net.URL page)
Gets an InputStream to the given URL.static java.io.InputStream
getStream(java.net.URL page, boolean followRedirects)
Gets an InputStream to the given URL.static java.io.InputStream
getStream(java.net.URL page, boolean followRedirects, int timeout)
Originally copied from javax.swing.JEditorPane.static java.io.InputStream
getStream(java.net.URL page, boolean followRedirects, int timeout, java.lang.String userName, java.lang.String userPassword)
Originally copied from javax.swing.JEditorPane.static java.io.InputStream
getStream(java.net.URL page, int timeout)
Gets an InputStream to the given URL.static byte[]
loadFileFromHttpServer(java.net.URL url)
Loads a file from a Http server.static byte[]
loadFileFromHttpServer(java.net.URL url, int timeout)
Loads a file from a Http server with the given read timeout.static byte[]
loadFileFromJar(java.lang.String fileName, java.lang.Class<?> srcClass)
Lädt eine Datei aus einem Jar-File und gibt sie zurück.static java.io.InputStream
openSaveGZipInputStream(java.io.InputStream is)
This method tries to open an inputstream as gzip and uncompresses it.static void
pipe(java.io.Reader reader, java.io.Writer writer)
Pipes all data from the specified Reader to the specified Writer, until the Reader has no more data.static boolean
pipeStreams(java.io.InputStream from, java.io.OutputStream to)
Pipes all data from the specified InputStream to the specified OutputStream, until the InputStream has no more data.static boolean
pipeStreams(java.io.InputStream from, java.io.OutputStream to, int timeout)
Pipes all data from the specified InputStream to the specified OutputStream, until the InputStream has no more data.static void
printStringArray(java.lang.String header, java.lang.String[] arr)
Prints the given array with a line break after each entry.static byte[]
readBinaryData(java.io.InputStream stream, int length)
Reads a number of bytes into an array.static javax.swing.ImageIcon
readImageIconFromFile(java.io.File srcFile)
Read the image from the given file to an icon image.static void
replace(java.lang.StringBuffer buffer, java.lang.String pattern, java.lang.String str)
Replaces inbuffer
thepattern
bystr
.static java.lang.String
replace(java.lang.String original, java.lang.String pattern, java.lang.String str)
Replaces a substring in the specified String.static boolean
saveStream(java.io.InputStream stream, java.io.File targetFile)
Saves the data from an InputStream into a file.static boolean
saveStream(java.io.InputStream stream, java.io.File targetFile, int timeout)
Saves the data from an InputStream into a file.static java.lang.String
timeToString(int minutesAfterMidnight)
Gets a String representation in the format h:mm for a time in minutes after midnight.static java.lang.String
translateRelativePath(java.lang.String path)
Translates a given path that can be relative or absolute to an absolute path.static void
ungzip(java.io.File srcFile, java.io.File targetFile)
Unzips a GZIP-file (.gz).static void
unzip(java.io.File srcFile, java.lang.String entryName, java.io.File targetFile)
Unzips a file from a ZIP-Archive (.zip, .jar).static boolean
writeImageIconToFile(javax.swing.ImageIcon icon, java.lang.String imageType, java.io.File targetFile)
Writes the given image icon to the given file in the given imageType.static java.lang.String
xorDecode(java.lang.String text, long seed)
Decodes the specified String using a simple XOR encryption.static java.lang.String
xorEncode(java.lang.String text, long seed)
Encodes the specified String using a simple XOR encryption.
-
-
-
Method Detail
-
download
public static void download(java.net.URL url, java.io.File targetFile) throws java.io.IOException
Downloads a file from a HTTP server.- Parameters:
url
- The URL of the file to download.targetFile
- The file where to store the downloaded data.- Throws:
java.io.IOException
- When download or saving failed.- See Also:
loadFileFromHttpServer(URL)
-
download
public static boolean download(java.net.URL url, java.io.File targetFile, int timeout) throws java.io.IOException
Downloads a file from a HTTP server.- Parameters:
url
- The URL of the file to download.targetFile
- The file where to store the downloaded data.timeout
- Timeout in milliseconds.- Returns:
true
the file was successfully downloaded,false
otherwise.- Throws:
java.io.IOException
- When download or saving failed.- See Also:
loadFileFromHttpServer(URL)
-
saveStream
public static boolean saveStream(java.io.InputStream stream, java.io.File targetFile) throws java.io.IOException
Saves the data from an InputStream into a file.- Parameters:
stream
- The stream to read the data from.targetFile
- The file where to store the data.- Returns:
true
if stream could be saved,false
otherwise.- Throws:
java.io.IOException
- When saving failed or when the InputStream throws an IOException.
-
saveStream
public static boolean saveStream(java.io.InputStream stream, java.io.File targetFile, int timeout) throws java.io.IOException
Saves the data from an InputStream into a file.- Parameters:
stream
- The stream to read the data from.targetFile
- The file where to store the data.timeout
- The timeout in milliseconds.- Returns:
true
if stream could be saved,false
otherwise.- Throws:
java.io.IOException
- When saving failed or when the InputStream throws an IOException.
-
getStream
public static java.io.InputStream getStream(java.net.URL page, boolean followRedirects) throws java.io.IOException
Gets an InputStream to the given URL.The connection has the Settings.propDefaultNetworkConnectionTimeout as connection timeout.
- Parameters:
page
- The page to get the stream to.followRedirects
- If the stream should be also established if the page not exists at the location but contains a redirect to an other location.- Returns:
- The stream to the page.
- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
getStream
public static java.io.InputStream getStream(java.net.URL page, boolean followRedirects, int timeout) throws java.io.IOException
Originally copied from javax.swing.JEditorPane.Fetches a stream for the given URL, which is about to be loaded by the
setPage
method. By default, this simply opens the URL and returns the stream. This can be reimplemented to do useful things like fetch the stream from a cache, monitor the progress of the stream, etc.This method is expected to have the the side effect of establishing the content type, and therefore setting the appropriate
EditorKit
to use for loading the stream.If this the stream was an http connection, redirects will be followed and the resulting URL will be set as the
Document.StreamDescriptionProperty
so that relative URL's can be properly resolved.- Parameters:
page
- the URL of the pagefollowRedirects
- Follow redirects.timeout
- The read timeout.- Returns:
- a stream reading data from the specified URL.
- Throws:
java.io.IOException
- if something went wrong.
-
getStream
public static java.io.InputStream getStream(java.net.URL page, boolean followRedirects, int timeout, java.lang.String userName, java.lang.String userPassword) throws java.io.IOException
Originally copied from javax.swing.JEditorPane.Fetches a stream for the given URL, which is about to be loaded by the
setPage
method. By default, this simply opens the URL and returns the stream. This can be reimplemented to do useful things like fetch the stream from a cache, monitor the progress of the stream, etc.This method is expected to have the the side effect of establishing the content type, and therefore setting the appropriate
EditorKit
to use for loading the stream.If this the stream was an http connection, redirects will be followed and the resulting URL will be set as the
Document.StreamDescriptionProperty
so that relative URL's can be properly resolved.- Parameters:
page
- the URL of the pagefollowRedirects
- Follow redirects.timeout
- The read timeout.userName
- The user name to use for the connection.userPassword
- The password to use for the connection.- Returns:
- a stream reading data from the specified URL.
- Throws:
java.io.IOException
- if something went wrong.
-
getStream
public static java.io.InputStream getStream(java.net.URL page) throws java.io.IOException
Gets an InputStream to the given URL.The connection has the Settings.propDefaultNetworkConnectionTimeout as connection timeout.
- Parameters:
page
- The page to get the stream to.- Returns:
- The stream to the page.
- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
getStream
public static java.io.InputStream getStream(java.net.URL page, int timeout) throws java.io.IOException
Gets an InputStream to the given URL.The connection has the given timeout as connection timeout.
- Parameters:
page
- The page to get the stream to.timeout
- The timeout for the connection, use 0 for no timeout.- Returns:
- The stream to the page.
- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
loadFileFromHttpServer
public static byte[] loadFileFromHttpServer(java.net.URL url) throws java.io.IOException
Loads a file from a Http server.The connection has the Settings.propDefaultNetworkConnectionTimeout as connection timeout.
- Parameters:
url
- The URL of the file- Returns:
- The content of the file
- Throws:
java.io.IOException
- When the download failed- See Also:
download(URL, File)
-
loadFileFromHttpServer
public static byte[] loadFileFromHttpServer(java.net.URL url, int timeout) throws java.io.IOException
Loads a file from a Http server with the given read timeout.- Parameters:
url
- The URL of the filetimeout
- The read timeout for the connection.- Returns:
- The content of the file
- Throws:
java.io.IOException
- When the download failed- See Also:
download(URL, File)
-
pipeStreams
public static boolean pipeStreams(java.io.InputStream from, java.io.OutputStream to) throws java.io.IOException
Pipes all data from the specified InputStream to the specified OutputStream, until the InputStream has no more data.Note: None of the streams is closed! You have to do that for yourself!
- Parameters:
from
- The stream to read the data from.to
- The stream to write the data to.- Returns:
true
if stream were successfully piped,false
otherwise.- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
pipeStreams
public static boolean pipeStreams(java.io.InputStream from, java.io.OutputStream to, int timeout) throws java.io.IOException
Pipes all data from the specified InputStream to the specified OutputStream, until the InputStream has no more data.Note: None of the streams is closed! You have to do that for yourself!
- Parameters:
from
- The stream to read the data from.to
- The stream to write the data to.timeout
- Timeout in milliseconds.- Returns:
true
if stream were successfully piped,false
otherwise.- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
pipe
public static void pipe(java.io.Reader reader, java.io.Writer writer) throws java.io.IOException
Pipes all data from the specified Reader to the specified Writer, until the Reader has no more data.Note: The Reader and the Writer are not closed! You have to do that for yourself!
- Parameters:
reader
- The Reader to read the data from.writer
- The Writer to write the data to.- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
copy
public static void copy(java.io.File[] src, java.io.File targetDir) throws java.io.IOException
Copies files given in source to the target directory.- Parameters:
src
- The files to copy.targetDir
- The target dir of the files.- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
copy
public static void copy(java.io.File[] src, java.io.File targetDir, boolean onlyNew) throws java.io.IOException
Copies files given in source to the target directory.- Parameters:
src
- The files to copy.targetDir
- The target dir of the files.onlyNew
- Overwrite only older files.- Throws:
java.io.IOException
- Thrown if something goes wrong.- Since:
- 2.2.2/2.5.1
-
copy
public static void copy(java.io.File src, java.io.File target) throws java.io.IOException
Copies a file.- Parameters:
src
- The file to read fromtarget
- The file to write to- Throws:
java.io.IOException
- If copying failed
-
copy
public static void copy(java.io.File src, java.io.File target, boolean onlyNew) throws java.io.IOException
Copies a file.- Parameters:
src
- The file to read fromtarget
- The file to write toonlyNew
- Overwrite only older files.- Throws:
java.io.IOException
- If copying failed- Since:
- 2.2.2/2.5.1
-
deleteDirectory
public static void deleteDirectory(java.io.File dir) throws java.io.IOException
Deletes a directory with all its files and subdirectories.- Parameters:
dir
- The directory to delete.- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
loadFileFromJar
public static byte[] loadFileFromJar(java.lang.String fileName, java.lang.Class<?> srcClass) throws java.io.IOException
Lädt eine Datei aus einem Jar-File und gibt sie zurück.Ist keine Datei mit diesem Namen im Jar-File, so wird versucht, sie vom Dateisystem zu laden.
- Parameters:
fileName
- Der Name der Datei. (Ist case-sensitive!).srcClass
- Eine Klasse, aus deren Jar-File das Image geladen werden soll.- Returns:
- The file loaded from the jar file as byte array.
- Throws:
java.io.IOException
- Wenn ein Fehler beim Laden der Datei auftrat.
-
unzip
public static void unzip(java.io.File srcFile, java.lang.String entryName, java.io.File targetFile) throws java.io.IOException
Unzips a file from a ZIP-Archive (.zip, .jar).Currently not used.
- Parameters:
srcFile
- The ZIP-File to read the data from.entryName
- The name of the file in the ZIP-archive to unzip.targetFile
- The file where to store the data.- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
ungzip
public static void ungzip(java.io.File srcFile, java.io.File targetFile) throws java.io.IOException
Unzips a GZIP-file (.gz).- Parameters:
srcFile
- The GZIP-File to unziptargetFile
- The file where to store the data.- Throws:
java.io.IOException
- Thrown if something goes wrong.
-
append
public static void append(java.lang.StringBuffer buffer, int number, int minChars)
Appends an integer to a StringBuffer. If the length of the integer's String representation is smaller than minChars, the missing chars will be filled as nulls ('0') as postfix.- Parameters:
buffer
- The buffer where to append the integer.number
- The integer to append.minChars
- The minimum number of chars.
-
replace
public static java.lang.String replace(java.lang.String original, java.lang.String pattern, java.lang.String str)
Replaces a substring in the specified String.- Parameters:
original
- The String to replace the substring in.pattern
- The pattern to replace.str
- The String to replace. This string may contain the pattern.- Returns:
- The result.
-
replace
public static void replace(java.lang.StringBuffer buffer, java.lang.String pattern, java.lang.String str)
Replaces inbuffer
thepattern
bystr
.- Parameters:
buffer
- The buffer to replace in.pattern
- The pattern to replace.str
- The str that should replace the pattern.
-
clear
public static void clear(java.lang.StringBuffer buffer)
Clears an StringBuffer- Parameters:
buffer
- The buffer to clear
-
getMinutesAfterMidnight
public static int getMinutesAfterMidnight()
Gets the number of minutes since midnightThis method does not create any objects.
- Returns:
- The number of minutes since midnight as integer
-
getSecondsAfterMidnight
public static int getSecondsAfterMidnight()
Gets the number of seconds since midnightThis method does not create any objects.
- Returns:
- The number of seconds since midnight as integer
- Since:
- 3.4.5
-
timeToString
public static java.lang.String timeToString(int minutesAfterMidnight)
Gets a String representation in the format h:mm for a time in minutes after midnight.- Parameters:
minutesAfterMidnight
- The time to get the String for- Returns:
- A String for the time
-
xorEncode
public static java.lang.String xorEncode(java.lang.String text, long seed)
Encodes the specified String using a simple XOR encryption.- Parameters:
text
- The text to encodeseed
- The seed of the Random object to use for getting the keys- Returns:
- The encoded String
-
xorDecode
public static java.lang.String xorDecode(java.lang.String text, long seed)
Decodes the specified String using a simple XOR encryption.- Parameters:
text
- The text to encodeseed
- The seed of the Random object to use for getting the keys- Returns:
- The decoded String
-
readBinaryData
public static byte[] readBinaryData(java.io.InputStream stream, int length) throws java.io.IOException
Reads a number of bytes into an array.- Parameters:
stream
- The stream to read fromlength
- The number of bytes to read- Returns:
- An array containing the read bytes
- Throws:
java.io.IOException
- When the end of the stream has been reached or reading failed
-
getBytesFromFile
public static byte[] getBytesFromFile(java.io.File file) throws java.io.IOException
Reads all Bytes from a File into an byte array- Parameters:
file
- Read Bytes from this File- Returns:
- Byte-Array or NULL if too large
- Throws:
java.io.IOException
- Read-Exception- Since:
- 2.5
-
writeImageIconToFile
public static boolean writeImageIconToFile(javax.swing.ImageIcon icon, java.lang.String imageType, java.io.File targetFile)
Writes the given image icon to the given file in the given imageType.- Parameters:
icon
- The icon to write.imageType
- The image type.targetFile
- The file to write the image to.- Returns:
True
if the file could be written,false
if something went wrong.- Since:
- 2.6
-
readImageIconFromFile
public static javax.swing.ImageIcon readImageIconFromFile(java.io.File srcFile)
Read the image from the given file to an icon image.- Parameters:
srcFile
- The file to read from.- Returns:
- The read icon image or
null
if something went wrong. - Since:
- 2.6
-
openSaveGZipInputStream
public static java.io.InputStream openSaveGZipInputStream(java.io.InputStream is) throws java.io.IOException
This method tries to open an inputstream as gzip and uncompresses it. If it fails, a normal inputstream is returned- Parameters:
is
- Inputstream that could be compressed- Returns:
- uncompressed inputstream
- Throws:
java.io.IOException
- Problems during opening of the Stream- Since:
- 3.0
-
encodeMultipleEpisodeNumersToSingleFieldValue
public static int encodeMultipleEpisodeNumersToSingleFieldValue(int[] episodeNumbers) throws java.util.zip.DataFormatException
Convert an array with episode numbers into a single integer value. The array can have a length of 1 with a maximum number of 536870912, or a length of 2 with a maximum number of 16384 for the first and second episode, or a length of 3 with a maximum number of 16384 for the first episode and a maximum difference of 128 between following episodes, or a length of 4 with a maximum number of 16384 for the first episode and a maximum difference of 16 between following episodes, or a length of 5 with a maximum number of 16384 for the first episode and a maximum difference of 8 between following episodes.- Parameters:
episodeNumbers
- The array with the episode number to encode.- Returns:
- The encoded episode number.
- Throws:
java.util.zip.DataFormatException
- Is thrown if the given array didn't match the given conditions.- Since:
- 3.3.3.
-
decodeSingleFieldValueToMultipleEpisodeNumers
public static java.lang.Integer[] decodeSingleFieldValueToMultipleEpisodeNumers(int fieldValue)
Decode the given value into an array of episode numbers.- Parameters:
fieldValue
- The field value to decode.- Returns:
- An array with the contained episode numbers.
- Since:
- 3.3.3.
-
decodeSingleFieldValueToMultipleEpisodeString
public static java.lang.String decodeSingleFieldValueToMultipleEpisodeString(int fieldValue)
Decode the given value into a String of episode numbers.- Parameters:
fieldValue
- The field value to decode.- Returns:
- A String of episode numbers.
- Since:
- 3.3.3.
-
checkForRelativePath
public static java.lang.String checkForRelativePath(java.lang.String path)
Check given path if it is a relative path of the TV-Browser settings home directory.- Parameters:
path
- The path to check.- Returns:
- A relative path if given path is in subdirectory of TV-Browser settings or the given path if not.
-
translateRelativePath
public static java.lang.String translateRelativePath(java.lang.String path)
Translates a given path that can be relative or absolute to an absolute path.- Parameters:
path
- The path to check and translate to an absolute path.- Returns:
- A full path.
- Since:
- 3.3.4
-
close
public static final void close(java.io.Closeable toClose)
Closes the given closeable.- Parameters:
toClose
- The closeable to close,null
value acceptable.- Since:
- 3.4.4
-
printStringArray
public static final void printStringArray(java.lang.String header, java.lang.String[] arr)
Prints the given array with a line break after each entry.- Parameters:
arr
- The array to print- Since:
- 4.1
-
getGraphicsConfigurationForFrame
public static java.awt.GraphicsConfiguration getGraphicsConfigurationForFrame()
Get the graphics configuration which is currently the best to use for new windows.- Returns:
- The best usable graphics configuration
- Since:
- 4.2.2
-
-