AQuelltext der Klasse IOUtils

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: " +

e.getMessage ());

}

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: " +

e.getMessage());

}

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++)

result[i] =

((Integer)values.elementAt(i)).intValue();

}

catch (IOException e) {

System.err.println("I/O Error: " +

e.getMessage ());

}

return result;

}

}