Generierte Dokumentation der praktischen Arbeit von Simon Tiffert


Hauptseite | Pakete | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente

OutputFile.java

gehe zur Dokumentation dieser Datei
00001 /*
00002  * 
00003  * Datei:   OutputFile.java
00004  * 
00005  * ---------------------------------
00006  * 
00007  * Datum:           $Date: 2004/05/13 10:15:32 $
00008  * Autor:           Simon Tiffert 
00009  * Prüfungsnummer:  40
00010  * Firma:           T-Systems
00011  * eMail-Adresse:   simon.tiffert@t-systems.com
00012  * Version:         $Revision: 1.7 $
00013  * 
00014  * ---------------------------------
00015  * 
00016  */
00017 
00018 package main.tools.file;
00019 
00020 import java.io.BufferedWriter;
00021 import java.io.File;
00022 import java.io.FileWriter;
00023 import java.io.IOException;
00024 
00025 import main.Main;
00026 
00027 /**
00028  * Diese Klasse bekommt den Namen einer Eingabedatei übergeben und 
00029  * erzeugt daraus eine Ausgabedatei.
00030  * Außerdem kann sie diese Datei zum Schreiben öffnen.
00031  * 
00032  * @version $Revision: 1.7 $
00033  * @author Simon Tiffert
00034  */
00035 public class OutputFile extends File
00036 {
00037   /**
00038    * Konstruktor, der den Konstruktor der Superklasse mit dem in dieser
00039    * Klasse erstellten Ausgabedateinamen aufruft.
00040    * 
00041    * @param pathname Pfadname
00042    * @param endung Endung
00043    */
00044   public OutputFile(String pathname, String endung)
00045   {
00046     super(setNameAusgabeDatei(pathname, endung));
00047   }
00048 
00049   /**
00050    * Der Name der Ausgabedatei wird gebildet, in dem der Text nach dem 
00051    * letzten Punkt, durch die übergebene Endung ersetzt wird. 
00052    * 
00053    * @param eingabeDateiName Name der Eingabedatei
00054    * @param endung Neue Endung
00055    * @return Name der Ausgabedatei
00056    */
00057   private static String setNameAusgabeDatei(
00058     String eingabeDateiName,
00059     String endung)
00060   {
00061     int index;
00062 
00063     // der Index des letzten Punktes wird gesucht
00064     index = eingabeDateiName.lastIndexOf(".");
00065 
00066     // ist kein Punkt enthalten
00067     if (index < 0)
00068     {
00069       // setze den Index auf das Ende des Eingabenamens
00070       index = eingabeDateiName.length();
00071     }
00072 
00073     // füge die neue Endung am Index ein
00074     return eingabeDateiName.substring(0, index) + endung;
00075   }
00076 
00077   /**
00078    * Die Funktion gibt einen BufferedWriter auf das File Objekt zurück.
00079    * Dabei wird getestet, ob eine vorhandene Datei überschrieben werden
00080    * darf und entsprechend reagiert.
00081    * 
00082    * @return BufferedWriter für Ausgabedatei
00083    * @throws IOException
00084    */
00085   public BufferedWriter getAusgabeDatei()
00086     throws IOException, OutputFileExistsException
00087   {
00088     // Wenn die Datei nicht überschrieben werden soll
00089     if (!Main.overwrite)
00090     {
00091       // und die Datei existiert, werfe eine Exception
00092       if (this.exists())
00093       {
00094         throw new OutputFileExistsException(this.getName());
00095       }
00096     }
00097 
00098     // ansonsten erstelle einen BufferedWriter auf die 
00099     // Ausgabedatei
00100     BufferedWriter bw = new BufferedWriter(new FileWriter(this));
00101     
00102     // gib diesen BufferedWriter zurück
00103     return bw;
00104   }
00105 
00106 }




Documentation created with Doxygen 1.3.6 Fri May 14 11:15:27 2004