package algds;
import java.io.*;
import java.util.Vector;
/**
* Die Klasse Utils beinhaltet Methoden, die die Ein- und
* Ausgabe von Werten vereinfachen.
*
* @author Kai-Uwe Sattler (kus@iti.cs.uni-magdeburg.de)
* @version 1.1
*/
public class IOUtils {
/**
* Liest einen int-Wert von der Standardeingabe und gibt
* diesen als Ergebnis zurück.
* Beispiel:
* int i = IOUtils.readInt ();
*
* @return der gelesene int-Wert
*/
public static int readInt () {
int result = 0;
BufferedReader reader =
new BufferedReader (new InputStreamReader (System.in));
try {
result = Integer.parseInt (reader.readLine ());
}
catch (IOException e) {
System.err.println ("I/O Error: " + e.getMessage ());
}
catch (NumberFormatException e) {
System.err.println ("Format Error: " + e.getMessage ());
}
return result;
}
/**
* Liest einen float-Wert von der Standardeingabe und gibt
* diesen als Ergebnis zurück.
*
* @return der gelesene float-Wert
*/
public static float readFloat () {
float result = 0;
BufferedReader reader =
new BufferedReader (new InputStreamReader (System.in));
try {
result = new Float (reader.readLine ()).floatValue ();
}
catch (IOException e) {
System.err.println ("I/O Error: " + e.getMessage ());
}
catch (NumberFormatException e) {
System.err.println ("Format Error: " + e.getMessage ());
}
return result;
}
/**
* Liest eine Zeichenkette von der Standardeingabe und gibt
* diese als Ergebnis zurück.
* Beispiel:
* String s = IOUtils.readString ();
*
* @return die gelesene Zeichenkette als String-Objekt
*/
public static String readString () {
String result = null;
BufferedReader reader =
new BufferedReader (new InputStreamReader (System.in));
try {
result = reader.readLine ();
}
catch (IOException e) {
System.err.println ("I/O Error: " + e.getMessage ());
}
return result;
}
/**
* Liest ein Zeichen von der Standardeingabe und gibt
* dieses als Ergebnis zurück.
*
* @return das gelesene Zeichen als char-Wert
*/
public static char readChar () {
char result = '\u0000';
BufferedReader reader =
new BufferedReader (new InputStreamReader (System.in));
try {
result = (char)reader.read ();
}
catch (IOException e) {
System.err.println ("I/O Error: " + e.getMessage ());
}
return result;
}
/**
* Liest ein Folge von Integer-Werten aus der angegebenen Datei
* und gibt diese in eimem Feld zurück.
* Im Fehlerfall wird null geliefert.
*
* @param filename Der Name (inkl. Pfad) der einzulesenden Datei
* @return das int-Feld mit den Werten
*/
public static int[] readIntArray (String filename) {
int[] result = null;
Vector values = new Vector ();
try {
BufferedReader reader =
new BufferedReader (new FileReader (filename));
while (reader.ready ()) {
Integer value = Integer.valueOf (reader.readLine ());
values.addElement (value);
}
reader.close ();
result = new int[values.size ()];
for (int i = 0; i < values.size (); i++)
result[i] = ((Integer) values.elementAt (i)).intValue ();
}
catch (IOException e) {
System.err.println ("I/O Error: " + e.getMessage ());
}
return result;
}
}