IOTools.java

import java.io.*;
import java.util.*;

public class IOTools {
  
  // Hilfsprogramme zur Vereinfachung des Benutzer-Dialogs
  
  BufferedReader in;
  
  public IOTools() {
    in = new BufferedReader(new InputStreamReader(System.in));
  }
  
  public double holeDouble(String bitte) throws IOException {
    // holt vom Benutzer einen double-Wert
    // gibt vorher bitte aus
    System.out.println(bitte);
    String s = in.readLine();
    double neuerWert = Double.parseDouble(s);
    return neuerWert;
  }
  
  public double[] holeVieleDoubles(String bitte) throws IOException {
    // holt vom Benutzer mehrere double-Werte als Array
    // gibt vorher bitte aus
    // Ende durch leere Eingabe
    System.out.println(bitte + " (Ende: leere Eingabe)");
    
    // da die Anzahl unbekannt ist, werden die Werte zunächst in eine Liste gepackt
    ArrayList liste = new ArrayList();
    do {
      String s = in.readLine();
      if (s.equals("")) {
        break;
      }      
      double neuerWert = Double.parseDouble(s);
      liste.add(new Double(neuerWert));
    } while (true);
    
    // Werte als Array zurückgeben
    // Problem: double sind keine Objekte, also Umweg über Double
    Object[] oListe = liste.toArray();
    double[] ergebnis = new double[oListe.length];
    for (int i=0; i < oListe.length; i++) {
      ergebnis[i] = ((Double) oListe[i]).doubleValue();
    }
    
    return ergebnis;
  }
  
  public int holeInt(String bitte) throws IOException {
    // holt vom Benutzer einen int-Wert
    // gibt vorher bitte aus
    System.out.println(bitte);
    String s = in.readLine();
    int neuerWert = Integer.parseInt(s);
    return neuerWert;
  }
  
  public boolean jaOderNein(String frage) throws IOException {
    // holt vom Benutzer die Antwort auf eine Alternativfrage
    // und gibt sie als boolean zurück
    
    System.out.println(frage + " (j/n)?");    
    String s = in.readLine();
    
    boolean antwort = false;
    if (s.compareTo("j") == 0) {
      antwort = true;
    }
    return antwort;
  }
}