Ich habe gerade die Wahl eine Usereingabe mittels InputStreamReader oder Scanner einzulesen.
Ehrlich gesagt kann ich die Methode mit dem Scanner besser verstehen. Aber ist es wirklich immer egal, welche der beiden Methoden ich anwende oder kann man sagen “Nein, Methode x ist bei Problem y völlig inakzeptabel!”?
Wenn du weißt was für Daten du bekommst, dann solltest du den Scanner verwenden, da dieser schon Methoden anbietet um beispielsweise direkt Integer oder Doubles zu lesen.
Ja, das fand ich am Scanner so nett.
Mit Exceptions bei Falscheingaben müsste ich aber so oder so, egal welche Methode ich verwende, arbeiten, denke ich. Spricht denn irgendwas konkret gegen den Scanner, was InputStreamReader wieder besser machen würde?
Wie gesagt, der Scanner macht meiner Meinung nach nur Sinn wenn du weißt was für Daten du bekommst. Weißt du das nicht, dann nimm einen InputStreamReader.
java.util.Scanner gibt es erst seit der Java Version 1.5 aka J2SE aka Java 5.0 aka Tiger
Der InputStreamReader ist schon seit Version 1.1 dabei.
Da es diesen also schon länger gibt ist er in vielen Beispielen verwendet worden und hat sich daher sehr gut gehalten. Auch für Dinge die man mit dem Scanner einfacher machen kann.