Die folgende Klasse wird in einigen Beispielen dieses Buches zum Einlesen von Werten verwendet. Sie vereinfacht die Nutzung der Ein-/Ausgabeklassen der Standardbibliothek und verbirgt auch die Ausnahmebehandlung. Daher ist die Klasse speziell für erste Programmierversuche geeignet.
package algoj;
import java.io.*;
import java.util.Vector;
// Die Klasse IOUtils beinhaltet Methoden, die die Ein- und
// Ausgabe von Werten vereinfachen.
public class IOUtils {
// Liest einen int-Wert von der Standardeingabe und gibt
// diesen als Ergebnis zurück.
// Beispiel:
// int i = IOUtils.readInt();
//
// Ergebnis: 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: " +
}
return result;
}
// Liest einen float-Wert von der Standardeingabe und gibt
// diesen als Ergebnis zurück.
//
// Ergebnis: der gelesene float-Wert
//
public static float readFloat() {
float result = 0;
BufferedReader reader =
new BufferedReader(
new InputStreamReader(System.in));
try {
result = Float.parseFloat(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 eine Zeichenkette von der Standardeingabe und gibt
// diese als Ergebnis zurück.
// Beispiel:
// String s = IOUtils.readString();
//
// Ergebnis: 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: " +
}
return result;
}
// Liest ein Zeichen von der Standardeingabe und gibt
// dieses als Ergebnis zurück.
//
// Ergebnis: 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 Integerwerten aus der angegebenen Datei
// und gibt diese in einem Feld zurück.
// Im Fehlerfall wird null geliefert.
//
// Parameter: filename Der Name (inkl. Pfad) der einzulesenden Datei
// Ergebnis: 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++)
((Integer)values.elementAt(i)).intValue();
}
catch (IOException e) {
System.err.println("I/O Error: " +
e.getMessage ());
}
return result;
}
}