import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
/**
* @author KLU
*
*/
public class Start
{
/** dies ist die Start Methode für mytext.de
* Sie liest die Programmparameter ein und initialiaisertt die Abläufe.
* Dazu benutzt Sie die Klassen {@link Ausgabe}, {@link Eingabe} und {@link Analyse}
* @param args liste von Strings als eingabeparameter
*
*/
public static void main(String[] args)
{
System.out.println("Ausgabe:"); // = Edicion!
/*
* Hier werden die PARAMETER EINGELESEN
*/
Steuerung steuerparameter = new Steuerung();
for (String startparameter : args)
{
if (startparameter == null) continue;
// die ausgabedatei
if(startparameter.startsWith("-input=") && startparameter.length() > 7)
{
steuerparameter.eingabeDatei = startparameter.substring(7);
steuerparameter.ausgabeDatei = steuerparameter.eingabeDatei;
}
// if (startparameter.startsWith("-output=")&& startparameter.length() > 8)
// {
// steuerparameter.ausgabeDatei = startparameter.substring(8);
// }
else if (startparameter.startsWith("-parameter=") && startparameter.length() > 11)
{
steuerparameter.parameterDatei = startparameter.substring(11);
}
else
{
Ausgabe.logToConsole("unbekannter Parameter: "+startparameter);
}
}
if (steuerparameter.parameterDatei == null)
{
Ausgabe.logToConsole("-parameterDatei nicht eingegeben");
return;
}
/*Einlesen der Datei
*
*/
FileReader liesFile; // Variable zum Einlesen
try
{
File eingabFile = new File ("U:/MyTextde/Texte/", steuerparameter.eingabeDatei); //Dattei wird hier aufgerufen
liesFile = new FileReader (eingabFile); //liesFile
}
catch (FileNotFoundException e1)
{
Ausgabe.logToConsole("eingabeDatei'" + steuerparameter.eingabeDatei+ "' nicht gefunden : " + e1.getMessage());
return;
}
//Text einlesen
//parameter einlesen
FileReader paramDatei;
try
{
File paramFile = new File ("U:/MyTextde/Konfiguration/", steuerparameter.parameterDatei);
paramDatei = new FileReader (paramFile);
}
catch (FileNotFoundException e)
{
Ausgabe.logToConsole("parameterDatei"+ steuerparameter.parameterDatei + " nicht gefunden :" + e.getMessage());
return;
}
try
{
steuerparameter.parameter = new Properties();
steuerparameter.parameter.load(paramDatei);
}
catch(IOException e)
{
System.out.println(" parameterDatei ' " + steuerparameter.parameterDatei + " ' nicht lesbar: " + e.getMessage());
}
//ausgabe der Parameter
Ausgabe aus = new Ausgabe(steuerparameter);
aus.logging("Ausgabe");
aus.logging(steuerparameter.parameter.toString());
//ausgabe der Parameter
aus.logging(" parameter "+ steuerparameter.toString());
//Eingabe ein= new Eingabe (parameter);
Einlesen einles = new Einlesen(steuerparameter, aus);
aus.logging("Eingelesener Text:\r\n"+einles.getText());
Analyse analyse = new Analyse(einles,steuerparameter,aus);
aus.logging("Wortliste : ");
aus.logging("----------");
aus.logging("\n");
for (String string : analyse.worter)
{
aus.logging(string);
}
aus.logging("\n");
aus.logging("===================================");
aus.logging("Anzahl Wörter: "+analyse.wortZaehlen());
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
/** In dieser Klasse, wird ein Textdatei aufgerunfen
* und eingelesen.
* Der Text wird in eine ArrayList eingelesen
*
*/
public class Einlesen
{
Steuerung st; // Die Klasse "Steuerung" bekommt eine Variable namens 'st'
Ausgabe ausgab; // Klasse Ausgabe
FileReader fileAufrufen = null;
String text = "";
public ArrayList<String> zeilen;
public Einlesen(Steuerung kontrolle, Ausgabe aus)
{
st = kontrolle;
ausgab = aus;
init();
}
public String getText()
{
return text;
}
public void init()
{
File eingabeFile = new File ("U:/MyTextde/Texte", st.eingabeDatei); // ruf die Datei auf
String line;
zeilen = new ArrayList<String>();
try
{
BufferedReader einlesen = new BufferedReader (new FileReader(eingabeFile)); // liest die Datei
//String zeilen = null;
while ((line = einlesen.readLine()) != null) //liest die Zeile ein
{
zeilen.add(line);
//text += zeilen + "\r\n";
}
einlesen.close();
}
catch (IOException e)
{
//ausgab.logging(e.getMessage());
}
}
}
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* @author KLU
* xxxx
*/
public class Ausgabe // Ausgabe Datei (Report)
{
Steuerung st;
FileWriter schreibText = null;
/** Der Konstruktor initialisiert die Ausgabe.
* Er öffnet die Einabedate und ....
* @param kontrolle
*/
public Ausgabe(Steuerung kontrolle)
{
st = kontrolle;
init();
}
private void init()
{
if (st == null) return;
if (st.parameter == null) return;
Object objekt = st.parameter.get("ausgabe.aufdatei");
boolean ausgabeAufDatei = Boolean.parseBoolean((String)objekt); //Wenn es String ist , weil es ein Text ist
if (ausgabeAufDatei)
{
File outFile = new File ("U:/MyTextde/Report/", st.ausgabeDatei); // Die Reportdatei wird in diesen eingelegt.
try
{
schreibText = new FileWriter(outFile);
}
catch (IOException e)
{
System.out.println("Die Ausgabedatei kann nicht geöffnet werden " + e.getMessage());
}
}
}
public void logging(String text)
{
logToConsole(text);
if ( schreibText == null)
init();
if ( schreibText != null)
try
{
schreibText.write(text+"\r\n");
schreibText.flush();
}
catch (IOException e)
{
System.out.println("In Ausgabedatei kann nicht geschrieben werden"+e.getMessage());
}
}
public static void logToConsole(String text)
{
System.out.println(text);
}
}
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Locale;
public class Analyse
{
Steuerung parameter;
Einlesen ein;
Ausgabe aus;
ArrayList<String> worter = new ArrayList();
public Analyse(Einlesen ein, Steuerung parameter, Ausgabe aus)
{
this.parameter = parameter;
this.ein = ein;
this.aus = aus;
int i;
for (String zeile : ein.zeilen) // aufruf von Array List "zeilen" aus der Klasse einlesen"
{
// dass hier ist eine ganz einfache Methode von Aufzählung der Wörten.
zeile = zeile.replaceAll("\\p{Punct}" , ""); // nehme die SonderZeichen raus .
// zeile aufteilen in Wörter und einfügen in worter
String[] ww = zeile.split("\\s");
for (String string : ww)
{
if (string != null && string.length() > 0)
worter.add(string); // hier werden die einselne wörter gespeichert! in der neue Liste "worter"
}
}
}
public int wortZaehlen() // ruf die ArrayList "Worter"
{
return worter.size();
}
/** die funktion liefert die Anzahle der Wörter des Textes
* @return die Anzahl der Wörter im Text
*/
public int anzahlWorte() //Wörter zählen in einer eingenen Methode
{
int anzahl = 0;
for (String zeile : ein.zeilen)
{
String[] split = zeile.split("\\s");
for (int i = 0; i < split.length; i++)
{
String string = split[i];
if ( string.length() > 0)
anzahl+=1;
}
}
return anzahl;
}
public int anzahlZeichen()
{
int anzahlzz = 0;
return anzahlzz;
}
}
import java.util.Properties;
public class Steuerung
{
String eingabeDatei = null;
String ausgabeDatei = null;
String parameterDatei = null;
Properties parameter = null;
public String toSt()
{
String result = "Steuerung[ausgabeDatei =" + ausgabeDatei + "\n" ;
result += "eingabeDatei =" + eingabeDatei + "\n";
result += "parameterDatei =" + parameterDatei + "] "+" \n";
result += "ausgabeDatei =" + ausgabeDatei + "]" + "\n";
return result;
}
}