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; } }