# Eingabe einlesen



## MiBri (2. Mrz 2009)

Hallo,

wie kann ich etas einlesen?

Mein Wunsch ist es ein Eingabe einzulesen und wieder auszugeben. 
Mein (falsche) syentax:

[HIGHLIGHT="Java"]public class Eingabe 
{
	public static void main (String [] args)
	{
		int eingabeint=0;

		System.out.println("Bitte eingabe machen");
		System.in.readin(eingabeint);                           // was muss ich stattdessen eingeben?
		System.out.println("Ihre Eingabe"+eingabeint);

	}
}[/HIGHLIGHT]


----------



## L-ectron-X (2. Mrz 2009)

Bis Java 1.5 sieht das so aus:
[HIGHLIGHT="Java"]import java.io.*;

public class Eingabe {
    public static void main (String[] args)
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Bitte etwas eingeben: ");
        try {
            System.out.println("Ihre Eingabe: "+reader.readLine());
        }
        catch(IOException e) {
            e.printStackTrace();
        }

    }
}[/HIGHLIGHT]


----------



## AmunRa (2. Mrz 2009)

[HIGHLIGHT="Java"]import java.util.*;
      public class Eingabe

      {
          public static void main (String [] args)
          {
              Scanner sc= new Scanner(System.in);

              System.out.println("Bitte eingabe machen");
              int eingabeint= sc.nextInt();                           // was muss ich stattdessen eingeben?
              System.out.println("Ihre Eingabe"+eingabeint);
          }
      }[/HIGHLIGHT]


----------



## Mofi (2. Mrz 2009)

also aus dem kopf sind mir zwei verschiedene arten des einlesens eingefallen und beim nachschauen waren es sogar drei 
ich geb dir mal zu allen ein beispiel aus meinem java buch (hoffe bis ich fertig bin war keiner schneller *g*)

die neuste möglichkeit(seit java 6) wäre es mit der klasse Console  (achtung, das mit der Console funktioniert NUR unter einer konsole wie MS-Dos oder dergleichen! unter eclpise z.b passiert gar nix)
Bsp für Console:
[HIGHLIGHT="Java"]
import java.io.*;

public class Eingabe{
  public static void main(String[] args){
    String name;
    int geburtsjahr;
    // Objekt fuer Konsole beschaffen
    Console cons = System.console();

    // Daten ausgeben und einlesen
    cons.printf("\n");
    cons.printf("Geben Sie Ihren vollstaendigen Namen ein: ");
    name = cons.readLine();   //Liest eine ganze zeile ein
    cons.printf("Geben Sie Ihr Geburtsjahr ein: ");
    String eingabe = cons.readLine();  // wieder ganze Zeile einlesen
    geburtsjahr = Integer.parseInt(eingabe);

    cons.printf(" %1$s, %2$d war ein sehr guter Jahrgang!", name, geburtsjahr);
    cons.printf("\n");
}
}
[/HIGHLIGHT]
man kann mit dem BufferedReader sich ein objekt basteln um von der tastatur einzulesen (sehr umständlich und es werden exceptions geworden also vorsicht, in dem Beispiel werden sie weitergeleitet, weil in dem buch exceptions erst später kommen 
[HIGHLIGHT="Java"]
import java.io.*;

public class Eingabe_BufferedReader{

 public static void main(String[] args) throws IOException{
  int zahl;

  System.out.println();
  System.out.print("Geben Sie einen Integer-Wert ein: ");
  BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
  String eingabe = tastatur.readLine();  //liest wieder die ganze zeile

  zahl = Integer.parseInt(eingabe);
System.out.println(" "+zahl);
System.out.println();
}
}
[/HIGHLIGHT]

so und zu guter letzt noch die Klasse Scanner (wurde in java 5 eingeführt)
[HIGHLIGHT="Java"]
import java.util.Scanner;

public class Eingabe_Scanner{

 public static void main(String[] args){
  System.out.println();
  System.out.print("Geben Sie ein Integer Wert ein: ");

  Scanner sc = new Scanner(System.in);
  int zahl = sc.nextInt();

  System.out.println(" Sie haben " + zahl+" eingegeben");
  System.out.println();
}
}
[/HIGHLIGHT]

das wars mal so in kurzform was ich spontan im buch gefunden habe.
am sinnvollsten ist es vermutlich das ganze in einer try-catch block zustecken, wegen falscher eingabe etc. aber ich benutz solche eingaben persönlich noch nicht, weil ich grad eher andere sachen übe (vererbung und so) bzw ein übungsbuch durchacker und da war das noch nicht so dran 

zur not schau in der java api mal nach den klassen nach 


hoffe das hilft dir ein wenig

( wenn irgendwas falsch ist oder fehlt sagt mir bescheid  und wenn ich mich vertippt hab auch - bin grad nicht so tippsicher)


----------



## MiBri (3. Mrz 2009)

Sehr interessant.

Aber warum macht das Java so kompliziert?

Ich habe gerade das Buch "Java ist auch eine Insel"

Aber darin finde ich nicht wirklich die beschriebenen sachverhalte.
Welches Kapitel kann das sein?


----------



## MiBri (3. Mrz 2009)

scanner --> S.268


----------



## MiBri (3. Mrz 2009)

Wie schön wenn man sich selber helfen kann 

BufferedReader S.762


----------



## The_S (4. Mrz 2009)

Ich finde das nicht wirklich kompliziert. Man muss nur mit der Dokumentation umgehen können. 

Java Platform SE 6

Eine kleine Anleitung, wie man das macht, findest du hier

Java Blog Buch : 07.02 Die Java API-Dokumentation

Ps.: Es gibt auch eine Online-Version von der Java-Insel. Dort findet man mit der Suche im Zweifelsfall schneller das Gesuchte.

Galileo Computing :: Java ist auch eine Insel (8. Auflage)


----------

