schmitzm.io
Class IOUtil

java.lang.Object
  extended by schmitzm.io.IOUtil

public class IOUtil
extends Object

Diese Klasse stellt statische Methoden fuer die Ein/Ausgabe zur Verfuegung.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Nested Class Summary
static class IOUtil.FilterMode
          Modi fuer Filter.
 
Field Summary
static FileFilter ALL_DIRS_FILTER
          FileFilter, der alle Verzeichnisse akzeptiert, aber keine "normalen" Dateien.
static FileFilter ALL_FILES_FILTER
          FileFilter, der alle Dateien akzeptiert, aber keine Verzeichnisse.
static FileFilter ALL_FILTER
          FileFilter, der alle Dateien und Verzeichnisse akzeptiert.
 
Constructor Summary
IOUtil()
           
 
Method Summary
static File appendFileExt(File file, String newExt)
          Haengt an einen Dateinamen-Erweiterung eine Erweiterung an, sofern diese noch nicht angehaengt ist.
static File changeFileExt(File file, String newExt)
          Aendert die Dateinamen-Erweiterung (z.B. ".exe") einer Datei.
static URL changeUrlExt(URL url, String postfix)
          Changes the ending (e.g. ".sld") of a URL
static boolean closeInputStream(InputStream in)
          Versucht einen Eingabe-Stream zu schliessen.
static boolean closeInputStream(InputStream[] in)
          Versucht alle gegebenen Eingabe-Streams zu schliessen.
static boolean closeOutputStream(OutputStream out)
          Versucht einen Ausgabe-Stream zu schliessen.
static FileFilter createRegExFileFilter(String regEx, IOUtil.FilterMode mode)
          Erstellt einen Filter fuer einen regulaeren Ausdruck.
static File createRelativeFile(File baseDir, String path)
          Erzeugt ein neues File-Objekt relativ zu einer Pfad-Angabe.
static FileFilter createSimpleFileFilter(String filterStr, IOUtil.FilterMode mode)
          Erstellt einen Filter fuer einen Filter-String.
static int deleteFiles(File dir, FileFilter filter, boolean recursive, boolean showFiles)
          Loescht Dateien oder Verzeichnisse in einem Verzeichnis.
static URL extendURL(URL base, String string)
          Erweitert eine URL.
static boolean fileFitsFilterMode(File file, IOUtil.FilterMode mode)
          Prueft, ob ein File einen angegebenen IOUtil.FilterMode erfuellt.
static String getBaseFileName(File file)
          Liefert den Dateinamen ohne Erweiterung (z.B. ohne ".exe") einer Datei.
static String getBaseFilePath(File file)
          Liefert den Pfad ohne Erweiterung (z.B. ohne ".exe") einer Datei.
static String getFileExt(File file)
          Liefert die Dateinamen-Erweiterung (z.B. ".exe") einer Datei.
static String getFileExt(File file, boolean withDot)
          Liefert die Dateinamen-Erweiterung (z.B. ".exe") einer Datei.
static int getFileExtIdx(File file)
          Liefert den Index des Dateinames, an der die Dateinamen-Erweiterung (inkl.
static int getFileExtIdx(String pathOrName)
          Liefert den Index des Dateinames, an der die Dateinamen-Erweiterung (inkl.
static URL getParentUrl(URL url)
          Die Funktion soll der Funktion File.getParent() fuer URLs entsprechen.
static URL getParentURL(URL url)
          Deprecated. use getParentUrl()
static File getRootDir(File file)
          Liefert das oberste Verzeichnis zu einer Datei (Haupt-Verzeichnis).
static File getTempDir()
          The system property java.io.tmpdir is not consistent on Linux and Windows.
static boolean isCommentLine(String line)
          Prueft, ob eine (Datei-)Zeile mit einem Kommentarkennzeichen beginnt und deshalb ignoriert werden muss.
static void main(String[] arg)
          Fuehrt verschiedene Funktionen aus.
static String readFileAsString(File file)
          Reads the contents of a File into one String.
static String readURLasString(URL url)
           
static boolean urlExists(URL url)
          Test whether it is possible to access the given URL.
static File urlToFile(URL url)
          Die Umwandlung einer URL in ein File-Objekt ist leider nicht trivial.
static void writeStreamToFile(InputStream input, String file)
          Schreibt einen Eingabe-Stream in eine Datei.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALL_FILES_FILTER

public static final FileFilter ALL_FILES_FILTER
FileFilter, der alle Dateien akzeptiert, aber keine Verzeichnisse.


ALL_DIRS_FILTER

public static final FileFilter ALL_DIRS_FILTER
FileFilter, der alle Verzeichnisse akzeptiert, aber keine "normalen" Dateien.


ALL_FILTER

public static final FileFilter ALL_FILTER
FileFilter, der alle Dateien und Verzeichnisse akzeptiert.

Constructor Detail

IOUtil

public IOUtil()
Method Detail

fileFitsFilterMode

public static boolean fileFitsFilterMode(File file,
                                         IOUtil.FilterMode mode)
Prueft, ob ein File einen angegebenen IOUtil.FilterMode erfuellt.

Parameters:
file - eine Datei oder ein Verzeichnis
mode - Filter-Modus (wenn null wird IOUtil.FilterMode.ALL angenommen
Returns:
false wenn die angegebenen Datei null ist

getFileExtIdx

public static int getFileExtIdx(File file)
Liefert den Index des Dateinames, an der die Dateinamen-Erweiterung (inkl. Punkt) beginnt.

Parameters:
file - Datei

getFileExtIdx

public static int getFileExtIdx(String pathOrName)
Liefert den Index des Dateinames, an der die Dateinamen-Erweiterung (inkl. Punkt) beginnt.

Parameters:
file - Datei

getFileExt

public static String getFileExt(File file)
Liefert die Dateinamen-Erweiterung (z.B. ".exe") einer Datei.

Parameters:
file - Datei
Returns:
Leerstring, falls die Datei keine Erweiterung hat

getFileExt

public static String getFileExt(File file,
                                boolean withDot)
Liefert die Dateinamen-Erweiterung (z.B. ".exe") einer Datei.

Parameters:
file - Datei
withDot - wenn false wird die Dateinamen-Erweiterung ohne den fuehrenden Punkt zurueckgegeben (z.B. "exe" statt ".exe")
Returns:
Leerstring, falls die Datei keine Erweiterung hat

appendFileExt

public static File appendFileExt(File file,
                                 String newExt)
Haengt an einen Dateinamen-Erweiterung eine Erweiterung an, sofern diese noch nicht angehaengt ist.

Parameters:
file - Datei
newExt - neue Dateinamen-Erweiterung (mit oder ohne ".")
Returns:
neues File-Objekt

changeFileExt

public static File changeFileExt(File file,
                                 String newExt)
Aendert die Dateinamen-Erweiterung (z.B. ".exe") einer Datei.

Parameters:
file - Datei
newExt - neue Dateinamen-Erweiterung (ohne ".")
Returns:
neues File-Objekt

changeUrlExt

public static URL changeUrlExt(URL url,
                               String postfix)
                        throws IllegalArgumentException
Changes the ending (e.g. ".sld") of a URL

Parameters:
url - URL like file:/sds/a.bmp
postfix - New file extension for the URL without .
Returns:
A new URL with new extension.
Throws:
IllegalArgumentException

getParentUrl

public static URL getParentUrl(URL url)
                        throws MalformedURLException
Die Funktion soll der Funktion File.getParent() fuer URLs entsprechen. Die URL wird in einen Sting konvertiert und dann (kuerzer) neu zusammengesetzt. Falls eine Verkuerzung nicht moeglich ist, wird eine MalformedURLException geworfen

Throws:
MalformedURLException

getParentURL

public static URL getParentURL(URL url)
                        throws MalformedURLException
Deprecated. use getParentUrl()

Throws:
MalformedURLException

extendURL

public static URL extendURL(URL base,
                            String string)
                     throws MalformedURLException
Erweitert eine URL. Bei der uebergebenen URL muss es sich um ein Verzeichnis handeln, sonst wird eine MalformedURLException geschmissen

Parameters:
base -
string -
Throws:
MalformedURLException

getBaseFilePath

public static String getBaseFilePath(File file)
Liefert den Pfad ohne Erweiterung (z.B. ohne ".exe") einer Datei.

Parameters:
file - Datei
See Also:
getBaseFileName(File)

getBaseFileName

public static String getBaseFileName(File file)
Liefert den Dateinamen ohne Erweiterung (z.B. ohne ".exe") einer Datei.

Parameters:
file - Datei
See Also:
getBaseFilePath(File)

getRootDir

public static File getRootDir(File file)
Liefert das oberste Verzeichnis zu einer Datei (Haupt-Verzeichnis).

Parameters:
file - Datei

createRelativeFile

public static File createRelativeFile(File baseDir,
                                      String path)
Erzeugt ein neues File-Objekt relativ zu einer Pfad-Angabe.
Im Normalfall setzt sich der neue Datei-Pfad aus baseDir und path zusammen, also newFile = baseDir + path.
Ausnahme 1:
Beginnt path mit einem Slash (bzw. Backslash bei Windows), ist newFile = ROOT(baseDir) + path, wobei ROOT(baseDir) das Hauptverzeichnis (Laufwerk) des Basis-Verzeichnisses bezeichnet.
Ausnahme 2:
Stellt path bereits eine absolute Pfadangabe dar (inkl. Laufwerksbezeichnung), ist newFile = path.

Parameters:
baseDir - Basis-Verzeichnis
path - Pfad/Datei-Angabe relativ zu baseDir
See Also:
getRootDir(File)

closeInputStream

public static boolean closeInputStream(InputStream in)
Versucht einen Eingabe-Stream zu schliessen.
Dabei werden bei Misserfolg keine Exceptions geworfen! SK: bei null wird true zurueckgegeben

Parameters:
in - zu schliessender Stream
Returns:
false falls das Schliessen nicht erfolgreich war

closeInputStream

public static boolean closeInputStream(InputStream[] in)
Versucht alle gegebenen Eingabe-Streams zu schliessen.
Dabei werden bei Misserfolg keine Exceptions geworfen!

Parameters:
in - zu schliessende Streams
Returns:
true falls das Schliessen aller Streams erfolgreich war

closeOutputStream

public static boolean closeOutputStream(OutputStream out)
Versucht einen Ausgabe-Stream zu schliessen. Zuvor wird ein flush() auf den Stream getaetigt.
Bei Misserfolg werden keine Exceptions geworfen! SK: bei null wird true zurueckgegeben *

Parameters:
out - zu schliessender Stream
Returns:
false falls das Schliessen nicht erfolgreich war

isCommentLine

public static boolean isCommentLine(String line)
Prueft, ob eine (Datei-)Zeile mit einem Kommentarkennzeichen beginnt und deshalb ignoriert werden muss. Kommentar-Kennzeichen sind // , # und |.

Parameters:
line - Eingabe-Zeile

writeStreamToFile

public static void writeStreamToFile(InputStream input,
                                     String file)
                              throws IOException
Schreibt einen Eingabe-Stream in eine Datei.

Parameters:
file - Dateipfad fuer die Zieldatei
Throws:
IOException - falls das Lesen aus dem Stream oder das Schreiben in die Ausgabedatei scheitert

createRegExFileFilter

public static FileFilter createRegExFileFilter(String regEx,
                                               IOUtil.FilterMode mode)
Erstellt einen Filter fuer einen regulaeren Ausdruck.

Parameters:
filterStr - definiert den Filter

createSimpleFileFilter

public static FileFilter createSimpleFileFilter(String filterStr,
                                                IOUtil.FilterMode mode)
Erstellt einen Filter fuer einen Filter-String. Dieser kann als Wildcard das Zeichen "*" enthalten. Alle anderen Zeichen werden direkt als Filter verwendet.

Parameters:
filterStr - definiert den Filter

deleteFiles

public static int deleteFiles(File dir,
                              FileFilter filter,
                              boolean recursive,
                              boolean showFiles)
Loescht Dateien oder Verzeichnisse in einem Verzeichnis. Das Verzeichnis selbst wird dabei NICHT geloescht, auch wenn es am Ende leer ist!

Parameters:
dir - Verzeichnis in dem Dateien/Verzeichnisse geloescht werden
filter - bestimmt, welche Dateien/Verzeichnisse geloescht werden
recursive - wenn true werden auch alle Dateien/Verzeichnisse in Unterverzeichnissen geloescht, die dem Filter entsprechen
showFiles - wenn true werden die geloeschten Dateien auf der Console ausgegeben
Returns:
Anzahl geloeschter Dateien und Verzeichnisse

urlToFile

public static File urlToFile(URL url)
Die Umwandlung einer URL in ein File-Objekt ist leider nicht trivial.

Parameters:
url -
See Also:
://weblogs.java.net/blog/kohsuke/archive/2007/04/how_to_convert.html

main

public static void main(String[] arg)
Fuehrt verschiedene Funktionen aus.
  • DELDIR name
    Loescht ein Verzeichnis aus allen Unterverzeichnissen.

Parameters:
arg -

getTempDir

public static File getTempDir()
The system property java.io.tmpdir is not consistent on Linux and Windows. On Windows&Solaris the path ends with a slash, on Linux&MacOS it doesn't. This method deals with this potential pit-fall.
The folder is cached in a static File field.

Returns:
A File object pointing to the system's temp directory. This method does some extra checks and returns a valid File
See Also:
http://rationalpi.wordpress.com/2007/01/26/javaiotmpdir-inconsitency/

urlExists

public static boolean urlExists(URL url)
Test whether it is possible to access the given URL.


readFileAsString

public static String readFileAsString(File file)
                               throws IOException
Reads the contents of a File into one String. Watch the size!

Parameters:
file - a File to read
Returns:
as String the content of the file.
Throws:
IOException

readURLasString

public static String readURLasString(URL url)
Returns:
a String with the content of the URL. Do not use this on long files! Returns null if an erro occured.