Class ResourceStreamProvider

java.lang.Object
schule.ngb.zm.util.io.ResourceStreamProvider

public class ResourceStreamProvider extends Object
Hilfsklasse, um InputStreams für Ressourcen zu erhalten.
  • Method Details

    • getResourceURL

      public static URL getResourceURL(String source) throws NullPointerException, IllegalArgumentException, IOException
      Ermittelt zur angegebenen Quelle einen passenden URL (Unified Resource Locator). Eine passende Datei-Ressource wird wie folgt ermittelt:
      1. Ist source eine existierende Datei (new File(source.isFile() == true})?
      2. Ist source ein relativer Pfad im Projekt (getResource(source) != null)?
      3. Ist source im Classpath enthalten (getClassLoader().getResource(source) != null)?
      4. Ansonsten erstelle ein URL-Objekt.

      Ein URL für die erste gefundene Resource wird zurückgegeben.

      Auftretende Exceptions werden als IOException geworfen. Bei einer Exception werden die nachfolgenden Quellen nicht mehr abgefragt. Eine MalformedURLException beim Konstruieren des URL zu einer Datei verhindert daher, dass noch im Classpath gesucht wird.

      Parameters:
      source - Eine Quelle für die Ressource (Absoluter Dateipfad, Dateipfad im Classpath oder Netzwerkressource)
      Returns:
      Ein InputStream für die Ressource
      Throws:
      NullPointerException - Falls source null ist.
      IllegalArgumentException - Falls source ein leerer String ist.
      IOException - Geworfen beim Erzeugen einer URL zu einer bestehenden Ressource.
    • getInputStream

      public static InputStream getInputStream(String source) throws NullPointerException, IllegalArgumentException, IOException
      Sucht eine zur angegebenen Quelle passende Ressource und öffnet einen passenden InputStream. Die konkrete Art des Streams hängt davon ab, welche Art an Ressource gefunden wird:
      1. Ist source eine existierende Datei new File(source).isFile() == true, dann wird ein FileInputStream erstellt.
      2. Ist source ein relativer Pfad im Projekt, wird ein passender Stream mit Class.getResourceAsStream(String) geöffnet.
      3. Ist source im Classpath enthalten, wird ein passender Stream mit ClassLoader.getResourceAsStream(String) geöffnet.
      4. Ist source eine gültige URL, dann wird ein Netwerkstream geöffnet.

      Die Möglichen Ressourcen werden in der gelisteten Reihenfolge durchprobiert und der erste gefundene Stream zurückgegeben. Auftretende Exceptions werden als IOException geworfen. Das bedeutet, falls für source keine gültige Ressource gefunden werden kann, wird am Ende die von URL.openStream() erzeugte IOException geworfen.

      Bei einer Exception werden die nachfolgenden Quellen nicht mehr abgefragt. Eine SecurityException beim Öffnen des FileInputStream (zum Beispiel, weil auf eine existierende Datei keine Leserechte bestehen) verhindert daher, dass noch im Classpath gesucht wird.

      Parameters:
      source - Eine Quelle für die Ressource (Absoluter Dateipfad, Dateipfad im Classpath oder Netzwerkresource).
      Returns:
      Ein InputStream für die Ressource.
      Throws:
      NullPointerException - Falls source null ist.
      IllegalArgumentException - Falls source ein leerer String ist.
      IOException - Geworfen beim Öffnen des Streams zu einer bestehenden Ressource oder falls keine passende Ressource gefunden wurde.
    • getOutputStream

      public static OutputStream getOutputStream(String source) throws IOException
      Sucht eine zur angegebenen Quelle passende Ressource und öffnet einen passenden OutputStream.

      Es wird davon ausgegangen, dass die Quelle auf eine Datei verweist, auf die Schreibrechte bestehen. Ist dies nicht der Fall, wird eine IOException geworfen.

      Parameters:
      source - Eine Quelle für die Ressource (Absoluter Dateipfad, Dateipfad im Classpath).
      Returns:
      OutputStream für die Ressource.
      Throws:
      IOException - Falls die Quelle kein gültiges Ziel beschreibt.
    • getReader

      public static BufferedReader getReader(String source) throws IOException
      Sucht eine zur angegebenen Quelle passende Ressource und öffnet einen BufferedReader.

      Die Suche erfolgt, wie bei getInputStream(String) beschrieben.

      Als Charset wird UTF-8 verwendet.

      Parameters:
      source - Eine Quelle für die Ressource (Absoluter Dateipfad, Dateipfad im Classpath oder Netzwerkresource).
      Returns:
      Ein BufferedReader für die Quelle.
      Throws:
      IOException - Falls die Quelle nicht exisitert oder nicht geöffnet werden kann.
      See Also:
    • getReader

      public static BufferedReader getReader(String source, Charset charset) throws IOException
      Sucht eine zur angegebenen Quelle passende Ressource und öffnet einen BufferedReader mit dem angegebenen Charset.

      Die Suche erfolgt wie bei getInputStream(String) beschrieben.

      Parameters:
      source - Eine Quelle für die Ressource (Absoluter Dateipfad, Dateipfad im Classpath oder Netzwerkresource).
      charset - Der zu verwendende Charset.
      Returns:
      Ein BufferedReader für die Quelle.
      Throws:
      IOException - Falls die Quelle nicht exisitert oder nicht geöffnet werden kann.
      See Also:
    • getWriter

      public static BufferedWriter getWriter(String source) throws IOException
      Sucht eine zur angegebenen Quelle passende Datei und öffnet einen BufferedWriter.

      Die Suche erfolgt wie bei getOutputStream(String) beschrieben.

      Als Charset wird UTF-8 verwendet.

      Parameters:
      source - Eine Quelle für die Ressource (Absoluter Dateipfad, Dateipfad im Classpath oder Netzwerkresource).
      Returns:
      Ein BufferedWriter für die Quelle.
      Throws:
      IOException - Falls die Quelle nicht exisitert oder nicht geöffnet werden kann.
      See Also:
    • getWriter

      public static BufferedWriter getWriter(String source, Charset charset) throws IOException
      Sucht eine zur angegebenen Quelle passende Datei und öffnet einen BufferedWriter.

      Die Suche erfolgt wie bei getOutputStream(String) beschrieben.

      Als Charset wird UTF-8 verwendet.

      Parameters:
      source - Eine Quelle für die Ressource (Absoluter Dateipfad, Dateipfad im Classpath oder Netzwerkresource).
      charset - Der zu verwendende Charset.
      Returns:
      Ein BufferedWriter für die Quelle.
      Throws:
      IOException - Falls die Quelle nicht exisitert oder nicht geöffnet werden kann.
      See Also: